网络抓取是许多组织用来从网页中抓取有价值数据的一种基本技术。网络抓取或网络捕获是为了从网站中提取和收集数据。Web 抓取在模型开发中很方便,这需要动态收集数据。它也适用于真实且与主题相关的数据,在这些数据中,短期内需要准确度,而不是实现数据集。收集的数据存储在包括 JSON、CSV 和 XML 的文件中,也被写入数据库供以后使用,还可以作为数据集在线提供。这本书将为您打开大门,深入研究使用 Python 库和其他流行工具(如 Selenium)的 web 抓取技术和方法。在本书的最后,你将学会如何高效地浏览不同的网站。
本书面向 Python 程序员、数据分析师、网络抓取新手以及任何想从头开始学习如何执行网络抓取的人。如果你想开始你的旅程,将网页抓取技术应用到一系列网页上,那么这本书就是你所需要的!
第一章网页抓取基础探讨了一些与 WWW 相关的、网页抓取所需的核心技术和工具。
第 2 章、Python 和 Web–使用 URLlib 和请求,除了探索各种格式和结构的页面内容外,还演示了通过 Python 库(如requests和urllib提供的一些核心功能
第 3 章使用 LXML、XPath 和 CSS 选择器,介绍了使用 LXML 的各种示例,实现了处理元素和 ElementTree 的各种技术和库功能
第 4 章“使用 pyquery 进行抓取”——一个 Python 库,详细介绍了 web 抓取技术以及部署这些技术的许多新 Python 库。
第 5 章使用 Scrapy 和 Beautiful Soup 进行网页抓取研究了使用 Beautiful Soup 遍历 Web 文档的各个方面,同时还探索了使用 Spider(换句话说,Scrapy)为爬行活动构建的框架。
第 6 章使用安全 Web涵盖了一些常见的、对 Web 抓取构成挑战的基本安全相关措施和技术。
第 7 章使用基于 Web 的 API 进行数据提取介绍了 Python 编程语言以及如何与 Web API 交互进行数据提取。
第 8 章使用 Selenium 爬取介绍了 Selenium 以及如何使用它爬取数据。
第 9 章使用正则表达式提取数据,详细介绍了使用正则表达式的网页抓取技术。
第 10 章、下一步介绍并探讨了使用文件进行数据管理、使用 pandas 和 matplotlib 进行分析和可视化的基本概念,同时还介绍了机器学习和数据挖掘,并探索了一些相关资源,这些资源对进一步学习和职业发展有帮助
读者应该具备一些 Python 编程语言的实用知识。
您可以从您的账户www.packt.com下载本书的示例代码文件。如果您在其他地方购买了本书,您可以访问www.packt.com/support并注册,将文件通过电子邮件直接发送给您。
您可以通过以下步骤下载代码文件:
- 登录或注册www.packt.com。
- 选择“支持”选项卡。
- 点击代码下载和勘误表。
- 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。
下载文件后,请确保使用以下最新版本解压或解压缩文件夹:
- WinRAR/7-Zip for Windows
- 适用于 Mac 的 Zipeg/iZip/UnRarX
- 适用于 Linux 的 7-Zip/PeaZip
该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Hands-On-Web-Scraping-with-Python 。如果 re 是对代码的更新,它将在现有 GitHub 存储库中更新。
我们的丰富书籍和视频目录中还有其他代码包,请访问**https://github.com/PacktPublishing/** 。看看他们!
我们还提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。您可以在这里下载:https://www.packtpub.com/sites/default/files/downloads/9781789533392_ColorImages.pdf 。
本书中使用了许多文本约定。
CodeInText:表示文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:<p>和<h1>HTML 元素包含一般文本信息(元素内容)
代码块设置如下:
import requests
link="http://localhost:8080/~cache"
queries= {'id':'123456','display':'yes'}
addedheaders={'user-agent':''}当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:
import requests
link="http://localhost:8080/~cache"
queries= {'id':'123456','display':'yes'}
addedheaders={' user-agent ':''}任何命令行输入或输出的编写方式如下:
C:\> pip --version
pip 18.1 from c:\python37\lib\site-packages\pip (python 3.7)粗体:表示您在屏幕上看到的新术语、重要单词或单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个示例:“如果通过 Chrome 菜单访问开发者工具,请单击更多工具|开发者工具”
Warnings or important notes appear like this. Tips and tricks appear like this.
我们欢迎读者的反馈。
一般反馈:如果您对本书的任何方面有疑问,请在邮件主题中注明书名,并发送电子邮件至 customercare@packtpub.com 。
勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packt.com/submit-errata,选择您的书籍,点击 errata 提交表单链接,并输入详细信息。
盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请通过copyright@packt.com与我们联系,并提供该材料的链接。
如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com。
请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。
有关 Packt 的更多信息,请访问Packt.com。