接着我的上一篇文章《网页爬虫完全指南》,这篇文章将涵盖几乎所有的 Python 网页爬取工具。我们从最基本的开始讲起,逐步涉及到当前最前沿的技术,并且对它们的利弊进行分析。
当然,我们不能全面地介绍每个工具,但这篇文章应该足以让你很好地知道哪些工具做什么,以及何时使用每一种工具。
注意: 本文中所涉及到的 Python 均指 Python3。
互联网其实是 非常复杂的 ——我们通过浏览器浏览一个简单的网页时,其背后其实涉及到许多技术和概念。 我并不打算对其进行逐一讲解, 但我会告诉你如果想要从网络中爬取数据需要了解哪些最重要的知识。
HTTP 采用 C/S 模型 , 在 HTTP 客户机(如 浏览器,Python 程序, curl(命令行工具),Requests 等等) 创建一个连接并向 HTTP 服务器(如 Nginx,Apache 等)发送信息(“我想浏览产品页”)。
然后服务器返回一个响应(如 HTML 代码)并且关闭连接。与 FTP 这些有状态协议不同,HTTP 的每个事务都是独立的,因此被称为无状态协议。
基本上,当你在浏览器中键入网站地址时,HTTP 请求如下所示:
如果对Python有兴趣,想了解更多的Python以及AIoT知识,解决测试问题,以及入门指导,帮你解决学习Python中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己Python方面学的不够精想要继续学习的,想转行怕学不会的, 都可以加入我们,可领取最新Python大厂面试资料和Python爬虫、人工智能、学习资料!
GET /product/ HTTP/1.1
Host: example.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/web\
p,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch, br
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit\
/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
在这个请求的第一行, 你可以获得如下的信息:
/product/
请求数据。还有其他 HTTP 谓词,你可以在这里看到完整的列表。以下是最重要的 header 字段: