学Python,想必大家都是从爬虫开始的吧。毕竟网上类似的资源很丰富,开源项目也非常多。
Python学习网络爬虫主要分3个大的版块:抓取,分析,存储
当我们在浏览器中输入一个url后回车,后台会发生什么?
简单来说这段过程发生了以下四个步骤:
-
查找域名对应的IP地址。
-
向IP对应的服务器发送请求。
-
服务器响应请求,发回网页内容。
-
浏览器解析网页内容。
?
那么学习爬虫需要掌握哪些库呢
通用:
-
urllib -网络库(stdlib)。
-
requests -网络库。
-
grab – 网络库(基于pycurl)。
-
pycurl – 网络库(绑定libcurl)。
-
urllib3 – Python HTTP库,安全连接池、支持文件post、可用性高。
-
httplib2 – 网络库。
-
RoboBrowser – 一个简单的、极具Python风格的Python库,无需独立的浏览器即可浏览网页。
-
MechanicalSoup -一个与网站自动交互Python库。
-
mechanize -有状态、可编程的Web浏览库。
-
socket – 底层网络接口(stdlib)。
-
Unirest for Python – Unirest是一套可用于多种语言的轻量级的HTTP库。
-
hyper – Python的HTTP/2客户端。
-
PySocks – SocksiPy更新并积极维护的版本,包括错误修复和一些其他的特征。作为socket模块的直接替换。
网络爬虫框架
-
功能齐全的爬虫
-
grab – 网络爬虫框架(基于pycurl/multicur)。
-
scrapy – 网络爬虫框架(基于twisted),不支持Python3。
-
pyspider – 一个强大的爬虫系统。
-
cola – 一个分布式爬虫框架。
-
-
其他
-
portia – 基于Scrapy的可视化爬虫。
-
restkit – Python的HTTP资源工具包。它可以让你轻松地访问HTTP资源,并围绕它建立的对象。
-
demiurge – 基于PyQuery的爬虫微框架。
-