《精通Python网络爬虫:核心技术、框架与项目实战》——3.7 实例——metaseeker

简介:

本节书摘来自华章出版社《精通Python网络爬虫:核心技术、框架与项目实战》一书中的第3章,第3.7节,作者 韦 玮,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.7 实例——metaseeker

metaseeker是一款比较实用的网站数据采集程序,使用该采集程序,可以让大家比较快速、形象地了解爬虫的工作过程。所以在本节中,会以metaseeker为例,跟大家一起学习如何采集当当网的商品及价格信息,让大家对爬虫工作过程有一个形象地了解,为后续我们使用Python开发爬虫打下基础。

如图3-5所示,我们将为大家爬取当当网新书栏目下的商品的名称及价格等信息(http://e.dangdang.com/morelist_page.html?columnType=all_rec_xssf&title=%E6%96%B0%E4%B9%A6%E9%A6%96%E5%8F%91)。


8e066f9a226637922d0c1e487e878417d7b3b019

可以从官网下载metaseeker工具(http://www.gooseeker.com/pro/product.html) ,进入后,选择第三种方案下载,如图3-6所示。该软件有的版本可以与浏览器配合使用,方案三集成了浏览器和该爬虫软件,安装起来比较简单。


06cbce4a03da0cde8db3a8292ddc170684b3143b

下载之后,我们只需要打开安装即可,安装好之后,打开该软件,会出现一个类似浏览器的界面,我们打开要爬取的网址(即刚才提到的当当网的图书商品页),单击“MS谋数台”,如图3-7所示。


b1c913ca073ce17e46b0d8ac7f84113a9a0f8ff4

打开后,会出现图3-8所示的界面。

此时,我们需要将刚才的商品页面网址复制到左上角的网址处,并按一下回车键,如图3-9所示。在加载了一会儿之后,软件的左下角处会出现“完成”字样,此时代表网页加载完成。


78f1e6ec8168e34ddec6f77c801390bc5aa8e9b2

然后,我们需要在该界面的“工作台”中,创建命名主题,创建好命名主题后,需要单击“查重”按钮,看是否名称冲突,若名称冲突则需要换一个主题名字。如图3-10所示,创建了一个名为dangdangbookprice的主题名。

创建主题名之后,需要进行下一步操作,即创建规则。我们在创建规则的页面中,单击新建,便可以输入想创建的规则名称,该规则名称可以自己拟定,如图3-11所示,我们创建了一个名为“当当图书商品价格抓取”的规则名称。


a04671980728d17abe0dde1934d3e05dd7ddcc77


2e4dbfd3a3bda42ecbf2e4d2fad64bf2d7675787


c1e5c244bfdd00bfc3a9d4b9a2d170d91af4a2a3

创建好了该规则名称后,我们需要选定该规则名,然后右键,单击添加→包容,如图3-12所示。

随后,会出现如图3-13所示的界面,让我们填写被爬取内容的详细信息,此时,我们需要根据自己的需求规划好一共需要多少个包容,比如,在此我们需要爬取商品的名称和商品的价格,所以两个包容就够了。我们先创建第一个包容,即商品价格,输入对应名称,然后勾选好右边的“关键内容”。完成之后,可以单击保存,然后再次选中规则名,并右键添加第二个包容,即商品名称。


f21e7adeeb91689ad57c6589faca894282498247


0c236f736830d147cb8fbcc0b7009506ef5dafef

完成之后,会出现如图3-14所示界面。

随后,我们可以在该界面的浏览器窗口中,选择其中一个商品的名称,即以一个商品名为例,建立好对应的规则。单击后可能会出现如图3-15所示的提示。


8ce90dd05aaf6db29e91afe4a5eaa6a695b8ea4f


c05a1bcaac3ec5d50d8307434ebac86252fff058

如果出现图3-15中的提示,我们可以单击该界面左上角的文件→刷新网页结构,如图3-16所示,这样即可解决该问题。


2f504f59fe28f1f722835ab17ad8c3e6664a8305

解决该问题后,我们再次单击其中一个商品名,单击后,网页标签处自动定位到对应的元素中。如图3-17所示,我们单击了“幸存者”之后,在网页标签中自动定位到了对应的DIV中,将DIV展开,有一个“#text”的字样,选中该字样,可以看到,在工作台的文本内容中,出现了对应的商品名,此时代表商品名定位成功。

随后,我们选中对应的“#text”,然后右键,单击内容映射→商品名称,将该规则映射到对应的商品名称包容中,那么以后,便可以根据这个规则去爬取网页上的其他商品的名称了,如图3-18所示。

我们还需要指定价格的规则,此时我们在浏览器区域中,单击该商品对应的价格,然后,在网页标签处会进行自动定位,如图3-19所示,我们单击了对应的价格“9.09”之后,网页标签处,自动定位到了对应的I标签下,我们展开I标签,同样可以看得到一个“#text”,选中“#text”在工作台的文本内容中,会出现对应的价格信息,此时,代表定位成功。

然后,我们同样需要选中该标签,然后右击,将该标签映射到商品价格中,如图3-20所示。


6c469e8fea1288ab91d5361a0dcbab590f3e7b87


bd72d5bca5f3c343deb7333e446c46f49e44882c


c9a876f7854a6f48b28c6e84edc6507d4843ab9c


2ffad6c99794bb0e80922dd2479437f03887365a

标签规则映射好之后,我们返回工作台,然后单击测试,便可以看得到当前是否爬取该界面中的所有商品信息。如图3-21所示,返回工作台,并单击测试。

单击了测试后,在输出信息中,我们可以看得到,该输出信息包含了该界面中所有的商品名称和对应的商品价格,也就是说,我们成功采集了,如图3-22所示,由于界面空间有限,只展现了部分爬取信息。

如果我们要对该网站下其他网页中的商品信息都进行自动爬取,虽然也是可以的,但是需要设置对应的爬取规则。在这里,metaseeker的使用仅作为本书的一个实例,并不是本书的重点内容,所以,关于metaseeker的深入使用部分我们就不过多讲解了,对应的内容不难,有兴趣的读者可以查看相关资料。


3aeb779973b1f9a430f193938b835dce81420533


f16658e1211235692b27c6759f42731a2ef334e5

我们讲该实例的目的是让大家对爬虫有一个形象的初步印象,方便后续深入学习爬虫开发。

相关文章
|
8天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
46 6
|
8天前
|
网络协议 Go
Go语言网络编程的实例
【10月更文挑战第27天】Go语言网络编程的实例
15 7
|
6天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
6天前
|
数据采集 存储 XML
Python实现网络爬虫自动化:从基础到实践
本文将介绍如何使用Python编写网络爬虫,从最基础的请求与解析,到自动化爬取并处理复杂数据。我们将通过实例展示如何抓取网页内容、解析数据、处理图片文件等常用爬虫任务。
|
9天前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
32 4
|
10天前
|
数据采集 存储 机器学习/深度学习
构建高效的Python网络爬虫
【10月更文挑战第25天】本文将引导你通过Python编程语言实现一个高效网络爬虫。我们将从基础的爬虫概念出发,逐步讲解如何利用Python强大的库和框架来爬取、解析网页数据,以及存储和管理这些数据。文章旨在为初学者提供一个清晰的爬虫开发路径,同时为有经验的开发者提供一些高级技巧。
10 1
|
6天前
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
35 0
|
1月前
|
Python
Python中的push方法详解与实例
Python中的push方法详解与实例
|
1月前
|
数据采集 JavaScript 前端开发
JavaScript逆向爬虫——使用Python模拟执行JavaScript
JavaScript逆向爬虫——使用Python模拟执行JavaScript
|
1月前
|
数据处理 Python
Python内置时间模块:Datetime实例详解(一)
Python内置时间模块:Datetime实例详解(一)