Python爬虫学习笔记9.24
2021/9/24 22:10:58
本文主要是介绍Python爬虫学习笔记9.24,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
【由于内容定位是个人学习笔记,所以并不适合作为系统的学习材料!!!】
关于urlopen()
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
data
参数
data
参数是可选的。如果要添加该参数,并且如果它是字节流编码格式的内容,即 bytes
类型,则需要通过 bytes()
方法转化。另外,如果传递了这个参数,则它的请求方式就不再是 GET 方式,而是 POST 方式。
实例:
import urllib.parse import urllib.request data = bytes(urllib.parse.urlencode({'word': 'hello'}), encoding='utf8') response = urllib.request.urlopen('http://httpbin.org/post', data=data) print(response.read())
timeout
参数
timeout
参数用于设置超时时间,单位为秒,如果请求超出了设置的这个时间,还没有得到响应,就会抛出异常。如果不指定该参数,就会使用全局默认时间。它支持 HTTP、HTTPS、FTP 请求。
实例:
import urllib.request response = urllib.request.urlopen('http://httpbin.org/get', timeout=1) print(response.read())
import socket import urllib.request import urllib.error try: response = urllib.request.urlopen('http://httpbin.org/get', timeout=0.1) except urllib.error.URLError as e: if isinstance(e.reason, socket.timeout): print('TIME OUT')
除了 data
参数和 timeout
参数外,还有 context
参数,它必须是 ssl.SSLContext
类型,用来指定 SSL 设置。
此外,cafile
和 capath
这两个参数分别指定 CA 证书和它的路径,这个在请求 HTTPS 链接时会有用。
cadefault
参数现在已经弃用了,其默认值为 False
。
关于Request
class urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
-
第一个参数
url
用于请求 URL,这是必传参数,其他都是可选参数。 -
第二个参数
data
如果要传,必须传bytes
(字节流)类型的。如果它是字典,可以先用urllib.parse
模块里的urlencode()
编码。 -
第三个参数
headers
是一个字典,它就是请求头,我们可以在构造请求时通过headers
参数直接构造,也可以通过调用请求实例的add_header()
方法添加。 添加请求头最常用的用法就是通过修改User-Agent
来伪装浏览器,默认的User-Agent
是 Python-urllib,我们可以通过修改它来伪装浏览器。比如要伪装火狐浏览器,你可以把它设置为:Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11
-
第四个参数
origin_req_host
指的是请求方的 host 名称或者 IP 地址。 -
第五个参数
unverifiable
表示这个请求是否是无法验证的,默认是False
,意思就是说用户没有足够权限来选择接收这个请求的结果。例如,我们请求一个 HTML 文档中的图片,但是我们没有自动抓取图像的权限,这时 unverifiable的值就是
True`。 -
第六个参数
method
是一个字符串,用来指示请求使用的方法,比如 GET、POST 和 PUT 等。
实例:
from urllib import request, parse url = 'http://httpbin.org/post' headers = { 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)', 'Host': 'httpbin.org' } dict = { 'name': 'Germey' } data = bytes(parse.urlencode(dict), encoding='utf8') req = request.Request(url=url, data=data, headers=headers, method='POST') response = request.urlopen(req) print(response.read().decode('utf-8'))
这篇关于Python爬虫学习笔记9.24的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享