一、urllib库基础
1.urllib可以提供一个高级接口,通过url在网上获取数据
2.url编码是基于utf-8的,在url中不允许出现空格
3.urllib方法:
(1)urllib.request.urlopen:发送请求,即发送想要爬取的网页链接,会返回网页的html代码
request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
参数含义:
①url: 输入一个链接,该链接可以是一个字符串或者一个 Request 对象
②data: 参数为一个字节类型对象 ,表示发送到服务器的附加数据。如果不需要发送数据,可以为None。
③timeout: 连接时的阻塞等待时间,如果不设定该参数,将启用全局默认的超时时间。
④cafile和capath: 用来为https请求指明一套可信的CA证书。cafile 必须是包含了一套证书的单独的文件,capath则应该指定这些证书文件的目录。
⑤context: 如果 context 参数被指定,它必须是一个带有各样SLL选项的ssl.SSLContext实例。
(2)urllib.request.Request:抓取URL内容,即发送一个GET请求到指定的页面,然后返回HTTP的响应:
注:urllib.request返回的响应经read()读取及设定编码格式为utf-8后,会将HTML代码以字符串形式返回,需要使用lxml库的etree模块转换成HTML代码
urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
①url: 请求链接,此参数为必传参数。
②data: 此参数为一个字节类型对象 ,表示发送到服务器的附加数据。如果不需要发送数据,可以为None。
③headers: 此参数为 HTTP 请求的头部信息,参数形式为字典。
④origin_req_host: 此参数为请求方的 host 名称或者 IP 地址。
⑤unverifiable: 此参数表示该请求是否可以验证,默认值为False,即用户没有权限接收该请求的结果。如果需要接收,需要将 unverifiable 的值设置成 True。
⑥method: 此参数为是发起的 HTTP 请求的方式,可以为GET、POST、DELETE、PUT等。
二、xpath解析HTML
1.xpath简介:xpath是一门在XML和HTML文档中查找信息的语