不用写代码,3天学会网络爬虫技术,零基础小白也能用数据开挂

不用写代码,3天学会网络爬虫技术,零基础小白也能用数据开挂

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

不用写代码,3天学会网络爬虫技术,零基础小白也能用数据开挂

这次主要讲解的是如何用网络爬虫软件自动下载网页上的文件,打个比方,我们打算把这个法规/标准网站上的pdf格式的法规文件下载下来:

不用写代码,3天学会网络爬虫技术,零基础小白也能用数据开挂

如果人工下载这些文件的话,需要在这个网页上逐个点击那些文件图标,即可激发下载过程。

下面将详细讲解定义规则和抓取过程。

1. 定义抓取规则

这是一种快捷的标注规则定义方法,但是并没有精确地定位HTML DOM节点,比如,在英文附件那个图标上做内容标注,会自动定位到DOM的IMG节点。为了下载pdf文件,定位到这个IMG节点是不精确的,这种内容标注主要用于采集文本内容。

为了精确地把pdf文件的url网址抓取下来,应该精确地做内容映射,如下图:

不用写代码,3天学会网络爬虫技术,零基础小白也能用数据开挂

步骤如下:

  1. 在文件图标上通过双击做内容标注,并且命名抓取内容为“英文附件链接”
  2. 观察窗口下部的DOM树,看到自动定位到了IMG,而我们需要这个图标对应的url,用以下载文件。通过观察DOM树,可以确定url存于IMG的父节点A中的属性节点@href中。
  3. 选中@href节点,用鼠标右键菜单 内容映射->英文附件链接,就可把@href映射给英文附件链接这个抓取内容。做了映射以后,就能看到工作台上的这个抓取内容的定位编号变化了。

上述过程就是普通的定义抓取规则过程,下面将是跟下载文件有关的设置过程。

如果你是零基础小白,看不懂,没关系!完整项目代码+视频使用教程+Python编程学习资料,扫描下方图片二维码加入Python学习QQ群638855753,即可领取,里面不光又Python编程教学,每晚8点还有Python直播教学哦!

2. 设置下载

如下图,选择“下载内容”,就能弹出设置窗口,勾选“下载文件”就表示从抓取到的url网址下载文件。下面的截图中还勾选了高级设置的“补全内容”选项,这个跟下载内容无关,目的是在生成的结果文件中显示网址的网址,因为从上一个截图看,@href里面存的是相对网址,不是从http开头的。

不用写代码,3天学会网络爬虫技术,零基础小白也能用数据开挂

这些设置完成以后,点击存规则,然后再点击爬数据,就能弹出一个DS打数机窗口,可以观察到网页被加载上来,采集完成后变成了白屏。

3. 查看下载的文件

如下图,本案例用的主题名是test_download_file_fuller,结果文件都放在DataScraperWorks文件夹中,test_download_file_fuller是一个子文件夹,用于存储XML格式的结果文件,还可以看到一个并列的子文件夹PageFileDir,用于存储所有的下载文件

不用写代码,3天学会网络爬虫技术,零基础小白也能用数据开挂

在PageFileDir中,所有的下载文件都放在一起,不分主题名,而是分在PageFileDir中的子文件夹中,子文件夹的名字具有这样的结构

线索号_时间戳

我们再打开XML格式的结果文件看一下内容结构,如下图:

不用写代码,3天学会网络爬虫技术,零基础小白也能用数据开挂

“英文附件链接”是用户定义的抓取内容,而“英文附件链接_file”是自动生成的抓取内容,文件在硬盘上存储在哪里,就用这个字段进行说明。

下载文件不分主题存放有个好处:如果要写一个文件处理程序,那么这个处理成就不需要逐个进入每个主题名文件夹去查看有没有新下载的文件。

相反,如果下载的文件按主题名分开存放的,处理程序要逐个检查主题名文件夹,但是有个好处:文件系统看起来比较有结构。

下面讲解怎样设置成按主题名分开存放。

4. 分主题存放

不用写代码,3天学会网络爬虫技术,零基础小白也能用数据开挂

如图所示,在DS打数机上选择菜单 文件->存储路径,在弹出框中选择“分主题存放”,改成分主题存放以后,再执行爬数据,就能看到PageFileDir文件夹放在了主题名文件夹下面

不用写代码,3天学会网络爬虫技术,零基础小白也能用数据开挂

5. 总结

不光文件下载,还有图片和视频下载的过程都是一致的,结果存储结构也是一致的,本教程的方法可以推及到图片和视频的下载。

扫码(或长按识别)进群,更多知识在等你学习~

本站所刊载的作品来源于网络或网友投稿,其版权归属原作者或所属媒体所有,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,不声明也不保证其内容的有效性、正确性与可靠性