上一篇文章,我们使用“Web Scraper”插件制作了我们的第一个爬虫程序。(零基础学爬虫(二):几分钟完成你的第一个爬虫程序!)今天,我们将升级我们爬虫程序,同时抓取网页的多个元素,以及抓取二级页面的信息。
开始之前我们要知道元素集(Element)的概念,元素集是包含了多个元素(附类)的集合,如果抓取信息时需要采集不同类型的元素又不想让不同类型的元素混淆在一起,就要使用元素集了。
一、首先我们创建一个新站点地图
1.打开一个网页,按F12打开控制台,打开控制台点击“Web Scraper”,点击“Creat new sitemap”新建站点地图,点击“Create sitemap”创建一个新站点。
2.然后在“Sitemap name”输入自定义的站点地图名字,在“Start URL”输入目标网址(小编输入的是自己知乎“我关注的人”页面),点击Create sitemap的确认按钮。
二、新建一个选择器
1.点击“Add new selector ”新建选择器。
2.新建一个type为Element的选择器,勾选复Multiple选按钮,然后点击“Select”开始选择抓取元素。
三、抓取一个元素集
1.如图,鼠标悬停在一个元素集边界的位置,等一个用户的全部信息都包含在绿色可采集的框内,点击鼠标左键将这个用户信息作为一个元素集。
2.同样的方法,选中第二个用户的元素集,程序会自动判定所有同类型元素集并用红色锁定,然后点击“Done selecting”。最后点击Save Selector保存爬虫规则。
四、保存爬虫规则以后,需要建立一个二级选择器。
1.点击刚刚创建的爬虫规则“following”。
2.进入_root/following路径以后,点击“Add new selector ”新建一个二级选择器。
3.将这个二级选择器命名为“username”,注意这里不要勾选勾选Multiple按钮,点击select按钮采集元素时,会发现只能在一个黄色框的范围内选择,这是因为刚才的一级选择器已经选定了元素集的范围。我们在黄色框内点击一下用户名,然后点击“Done selecting”,点击Save Selector保存这个二级选择器。
4.然后我们用同样的方法点击“Add new selector ”,再新建一个名为“desc”的二级选择器,点击“Select”然后选择用户的个人描述信息,点击“Done selecting”,点击Save Selector保存这个二级选择器。
五、开始采集数据
1.保存好二级选择器的设置后,点击“_root”回到根节点。
2.点击“Data preview”可以预览数据采集的结果。
3.为了方便理解,我们还可以在插件里面点击“Selector graph”查看我们选择器和二级选择器的数据结构。
选择器和二级选择器的数据结构
六、爬取二级页面
1.我们以上市公司的公告为抓取目标,尝试抓取二级页面的信息。首先,我们新建一个站点地图,将我们准备采集上市公司公告的列表页面网址(小编选择的是财经网站“雪球”的个股“贵州茅台”的页面)作为“Start URL”。
2.接下来,我们要定义我们要采集的元素集
需要注意的是,雪球的个股页面的“公告”一栏是需要鼠标点击才能切换的,所以要将“公告”的Type类型选择为“Element Click”。新建一个type为Element Click的选择器,随意取个名字叫做“notice click”。
首先,我们要让爬虫程序模拟鼠标点击“公告”一栏,点击“Click selector”的“Select”选择鼠标点击的位置,然后将鼠标移动到“公告”上面单击一下,并点击“Done selecting!”保存鼠标点击的位置。然后勾选“Multiple”复选按钮,还要勾选“Discard initial elements that are available before click”按钮。
3.接下来点击“Selector”的“Select”开始选择抓取的元素集。注意开始选择元素集之前要用鼠标在网页上点击一下“公告”,让网页切换到公告栏再开始选择!选择元素集时当一份公司公告在整个选择框内时鼠标点击一下,然后用同样的方法选中第二个元素集,程序会自动判定所有同类型元素集并用红色锁定,然后点击“Done selecting”。最后点击Save Selector保存爬虫规则。
4.接下来我们要开始创建二级选择器。
点击notice click进入_root/notice click路径,点击“Add new selector ”新建一个二级选择器。咱们把上市公司公告的标题作为第一个二级选择器要抓取的内容。
5.第二个二级选择器,我们要采集公司公告PDF文件的网址,也就是二级页面的链接,注意这个二级选择器的Type要选择“Link”,然后点击“Select”,点击元素集里的超链接(我选的这个网页里面叫“网页链接”)。然后点击“Done selecting”,点击Save Selector保存这个二级选择器。
6.返回root根目录,点击“Data preview”可以预览采集结果,点击“Sitemap”的“Start scraping”开始抓取数据,程序运行结束后会在控制台显示数据爬取的结果。点击控制台的“Sitemap”的“Export data as CSV”将爬取的结果保存为excel可以打开的CSV格式,以便于以后的信息存储和数据挖掘。
7.打开刚才保存的CSV文件可以看到,我们要抓取的二级页面的上市公司的公告PDF文件的地址已经在抓取结果里面了,我们可以把抓取的这些文件地址复制,用迅雷等下载软件批量下载上市公司的公告做进一步的分析。