Python爬虫基础之Urllib库
Python 爬虫基础之 Urllib 库 Python 的 Urllib 库是 Python 语言中最基本的网络请求库,提供了对 URL 的访问和处理能力。该库包含了多种功能,包括访问 URL、设置 headers、代理设置、超时时间设置等。 1. 访问 URL 读取返回结果 Urllib 库的 urlopen 函数可以用来访问 URL,并读取返回结果。该函数的第一个参数是 URL,第二个参数是要传送的数据,第三个参数是超时时间。其中,URL 是必须要传送的,data 和 timeout 可以不传送,data 默认为空 None,timeout 默认为 socket._GLOBAL_DEFAULT_TIMEOUT。 例如,以下代码可以访问百度的首页并读取返回结果: ``` import urllib2 response = urllib2.urlopen("http://www.baidu.com") print response.read() ``` 2. 构造 Request 访问 URL 读取返回结果 Urllib 库的 Request 对象可以用来构造请求,并访问 URL。该对象可以设置 headers 和数据,并且可以用来发送 GET 和 POST 请求。 例如,以下代码可以访问百度的首页并读取返回结果: ``` import urllib2 request = urllib2.Request("http://www.baidu.com") response = urllib2.urlopen(request) print response.read() ``` 3. GET 提交 Urllib 库的 urlencode 函数可以用来对请求参数实现 URL 编码操作。例如,以下代码可以将用户名和密码作为 GET 请求的参数: ``` import urllib import urllib2 data = urllib.urlencode({"username":"张三","psw":"123"}) request = urllib2.Request("http://www.baidu.com?"+data) response = urllib2.urlopen(request) print response.read() ``` 4. POST 提交 Urllib 库的 Request 对象可以用来设置数据,并将其作为 POST 请求的参数。例如,以下代码可以将用户名和密码作为 POST 请求的参数: ``` import urllib import urllib2 data = urllib.urlencode({"username":"park","password":"123"}) request = urllib2.Request("https://www.baidu.com",data) response = urllib2.urlopen(request) print response.read() ``` 5. 设置 Headers Urllib 库的 Request 对象可以用来设置 headers。例如,以下代码可以设置 User-Agent headers 使其模拟浏览器的工作: ``` import urllib import urllib2 url = 'http://www.baidu.com' data = urllib.urlencode({"username":"park","password":"123"}) headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3559.6 Safari/537.36'} request = urllib2.Request(url, data, headers) response = urllib2.urlopen(request) print response.read() ``` 6. 代理设置 Urllib 库可以使用环境变量 http_proxy 来设置 HTTP 代理。例如,以下代码可以设置代理服务器: ``` import urllib2 enable_proxy = True proxy_handler = urllib2.ProxyHandler({"http" : 'http://127.0.0.1:1080'}) null_proxy_handler = urllib2.ProxyHandler({}) if enable_proxy: opener = urllib2.build_opener(proxy_handler) else: opener = urllib2.build_opener(null_proxy_handler) urllib2.install_opener(opener) ``` 7. 超时时间设置 Urllib 库的 urlopen 函数可以设置超时时间。例如,以下代码可以设置超时时间为 10 秒: ``` import urllib2 response = urllib2.urlopen('http://www.baidu.com', timeout=10) print response.read() ``` Urllib 库提供了多种功能,可以满足不同的网络请求需求。通过设置 headers、代理和超时时间,可以模拟浏览器的工作,并避免被检测和禁止访问。


















- 粉丝: 29
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- shardingsphere-jdbc整合springboot实现读写分离
- Keysight34410,34411,L4411A,34420,34460系列万用表测试软件,可以无限长时间测试,采样率可以到50KHz
- AWS云计算概念与技术类比精华
- 小巧实用的 OCR 图形界面工具箱,含图像预处理与文字识别,开箱即用
- Z7 ZU+ 开发环境搭建 2023.1.pdf
- AG32VF407VGT6+usb+cdc虚拟串口
- RK_7020_Vitis.pdf
- 抖音昵称加粗斜体效果设置教程
- 基于 2024 最高指标 ReID 模型、YOLOv8 检测、BoTSORT 跟踪与 FAISS 检索的完整流程,支持视频、图像及文件夹遍历
- java发送IGMP,使用jpcap
- MATLAB环境下云模型发生器代码实现
- 鬼灭之刃角色百科网页开发:HTML+CSS+JS 打造高颜值动漫展示站
- 基于 RESNET50 与 CA 注意力机制的多类别交通标识图像分类识别
- fs12008.pdf
- Python 安装全攻略:多版本共存、环境隔离与IDE配置实战
- 基于微信云开发的图像识别小程序:识几应用



评论0