Urllib
(1)参考《python文档_标准库_urllib》
urllib.request for opening and reading URLs
urllib.error containing the exceptions raised by urllib.request
urllib.parse for parsing URLs
urllib.robotparser for parsing robots.txt files
(2)参考《python文档_标准库_urllib.request》
urllib.request.urlopen()可以实现最基本请求的发起
urllib.request.Request()可以实现更强大的请求的发起
对于一些更高级的操作(比如Cookies处理、代理设置等),需要用到Handler
(3)参考《python文档_标准库_urllib.parse》
urllib.parse.urlparse()返回一个ParseResult类型的对象,对应标准的链接格式:scheme://netloc/path;parameters?query#fragment,分解出6部分
urllib.parse.urlunparse()可以还原出标准链接格式
urllib.parse.urlencode()可用于序列化构造GET请求参数
urllib.parse.parse_qs()可用于反序列化转为字典
urllib.parse.quote()可用于进行URL编码
urllib.parse.unquote()可用于进行URL解码
(4)参考《python文档_标准库_urllib.robotparser库》
urllib.robotparser.RobotFileParser()
Requests
(1)参考《Requests文档》
(2)参考《Requests文档_Quickstart》
requests.get()构造一个GET请求方式,返回类型是requests.models.Response
requests.get().text可以得到str类型,JSON格式的返回内容
requests.get().json()可以得到dict类型的返回内容
requests.get().content可以拿到媒体文件的二进制码
requests.post()构造一个POST请求方式
requests.get().status_code与requests.codes.xxxx都可以看出网络返回状态
(3)参考《Requests文档_Advanced Usage》
requests.cookies.RequestsCookieJar()可以生成RequestsCookieJar类型对象,之后通过对象.set(key,value)可以手动地设置cookies
requests.Session()可以生成一个会话,requests.Session().get(url)后.get(newurl)不用担心cookies问题
requests.get(url,verify=False)可以忽略证书问题,错误提示可以采取import logging和logging.captureWarnings(True)屏蔽,也可以采用from requests.packages import urllib3和urllib3.disable_warnings()屏蔽
requests.get(url,headers='',proxies='')可以添加头,设置代理
(4)参考《Requests文档_Authentication》
requests.get(url, auth=HTTPBasicAuth('username', 'password'))获取需要用户名、密码登录的网页
正则表达式
参考《正则表达式》
Xpath
Beautiful Soup
参考《Beautiful Soup文档_中文》与《Beautiful Soup文档_英文》,也可参考《Beautiful Soup文档_CSS选择器》与《Beautiful Soup介绍》
支持多种解析器,推荐使用lxml解析库,必要时使用html.parser
pyquery
相较于Beautiful Soup,其CSS选择器的功能更加强大
(1)查找节点
doc = pq(html)初始化后,使用item=doc('CSS选择语句')查找节点得到pyquery.pyquery.PyQuery,可使用.find('CSS选择语句')进一步查找节点,仍得到pyquery.pyquery.PyQuery类型
(2)遍历与否
doc = pq(html)初始化后,使用doc('CSS选择语句')得到的类型是pyquery.pyquery.PyQuery,不能遍历
doc = pq(html)初始化后,使用doc('CSS选择语句').items()得到的类型是generator,可以遍历
(3)获取属性
doc = pq(html)初始化后,使用doc('CSS选择器').attr('href')得到节点的href属性
doc = pq(html)初始化后,使用doc('CSS选择器').attr.href也能得到节点的href属性
(4)获取文本
doc = pq(html)初始化后,使用doc('CSS选择器').text()得到节点的文本,得到的类型是字符串,采用一个空格分割开,因此可以用.split()处理后索引[index]定位
(5)节点操作
doc = pq(html)初始化后,使用doc.find('p').remove()可以移除p节点,为信息提取提供便利