python爬虫中常用的模块介绍

网络请求

urllib3模块

urllib3模块是一个第三方的网络请求模块,主要使用连接池进行网络请求的访问。使用urllib3发送网络请求时,需要首先创建PoolManager对象(连接池管理对象),再通过该对象调用 request() 方法发送请求。

Request模块

Requests库使用起来更加简洁,Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。
requests 的底层实现其实就是 urllib3
Requests的文档非常完备,中文文档也相当不错。Requests能完全满足当前网络的需求,支持Python 2.6—3.5,而且能在PyPy下完美运行。
具体的requests介绍

urllib3和request模块之间的对比

(1)二者引入的模块是不一样的

import urllib.request
import requests

(2)发起请求的方式
urllib是通过urlopen方法获取数据。

requests需要通过网页的响应类型获取数据。

response=requests.get("https//www.baidu.com")
response=urllib.request.urlopen("https//www.baidu.com")

(3)数据封装的方式是不一样的

"""urllib为了应对反爬虫的数据封装机制"""
req=urllib.request.Request(url=url,data=data,headers=headers)
response=urllib.request.urlopen(req,context=context)
"""Requsets的反爬虫数据封装机制"""
response=requests.get(url=url,headers=header)

(3)解析网页数据
urllib和requests都可以通过bs4和re进行数据的解析,requests还可以通过xpath进行解析。

(4).保存数据
urllib需要引入xlwt模块进行新建表格、sheet表格写入数据,requests通过with…as直接写入数据

"""urllib写入数据"""
workbook=xlmt.Workbook(encoding="utf-8")
worksheet=workbook.add_sheet('名称')
"""requests写入数据"""
with open('test.txt','w',encoding='utf-8') as f:
	f.write(html)

网页解析

BeautifulSoup

BeautifulSoup和XPath是python中解析网页常用的两个库。
使用方法:

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html_doc, 'html.parser')

其中第二个参数,默认是html.parser,BeautifulSoup 支持的常见解析器有四种: html.parser,lxml,lxml-xml,html5lib;之间的区别是:

python爬虫调用了什么模块 python爬虫需要的模块_python


BeautifulSoup的内容及使用方法

lxml的XPath requests-html 正则表达式(re)

这三种方法的具体介绍

其他工具

pandas爬取网页上的表格

Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。用Pandas能够很容易地读取到了表格,这要比自己写爬虫工具专门收集数据简单多,其中pandas的read_html方法用户读取网页中的表格。
具体操作方式

Selenium

Selenium是一个用电脑模拟人操作浏览器网页,可以实现自动化,测试等,Selenium支持跨不同浏览器,平台和编程语言的自动化。
Selenium详细教程