美文网首页Python,web开发,前端技术分享大数据 爬虫Python AI Sql互联网科技
Python学习笔记(10)用网络爬虫软件自动下载网页上的文件

Python学习笔记(10)用网络爬虫软件自动下载网页上的文件

作者: 2890bd62c72a | 来源:发表于2019-08-14 22:16 被阅读7次

    举个例子,我们打算把这个法规/标准网站上的pdf格式的法规文件下载下来:

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

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

    1. 定义抓取规则

    定义抓取规则的方法参看基础教程中的相应章节,请注意,这种标注是一种快捷的规则定义方法,但是并没有精确地定位HTML DOM节点,比如,在英文附件那个图标上做内容标注,会自动定位到DOM的IMG节点。为了下载pdf文件,定位到这个IMG节点是不精确的,这种内容标注主要用于采集文本内容。
    为了精确地把pdf文件的url网址抓取下来,应该精确地做内容映射,如下图:

    步骤如下:

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

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

    2. 设置下载

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

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

    3. 查看下载的文件

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


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

    线索号_时间戳

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

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

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

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

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

    4. 分主题存放

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

    5. 总结

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

    如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!交流经验!自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

    相关文章

      网友评论

        本文标题:Python学习笔记(10)用网络爬虫软件自动下载网页上的文件

        本文链接:https://www.haomeiwen.com/subject/oqjkjctx.html