从因特网上获取数据的软件包
web-scraper的Python项目详细描述
此软件包包括用于在网页及其子网页中查找链接的模块。
在主模块中,使用两个子模块找到链接,然后将其相加:
- 使用谷歌搜索结果(使用谷歌搜索获取链接)
因为我们可以指定我们在google中搜索时要查找的文件类型,所以这种方法会删除这些结果。 但这种方法并不完整:
- google搜索是基于爬虫的,有时它们的索引不正确。例如,[this][1]网页目前(2018年8月7日)有三个pdf文件,但当我们[使用谷歌搜索][2]查找它们时,它只找到两个,尽管这些文件是4年前上传的。
- 它不适用于一些网站。例如[这个][3]网页有三个pdf文件,但google[找不到任何][4]。
- 如果在短时间内发送了许多请求,google将阻止访问并要求解决验证码问题。
- 使用直接方法查找给定页面中的所有url,如果它们引用子页面并递归搜索,则跟踪这些链接(直接获取链接)
虽然此方法不会丢失它到达的页面中的任何文件(与方法1不同,方法1有时会丢失),但它可能不会找到所有文件,因为:
- 域中的某些网页可能是孤立的,即父网页中没有指向它们的链接。在这些情况下,上述方法1起作用。
- 在极少数情况下,指向xyz类型文件的链接中可能没有.xyz([示例][5])。在这些情况下,方法2无法检测文件(因为它只依赖于链接中出现的extesion),但是方法1在这些情况下能够正确检测。
所以这两种方法弥补了彼此的不足。
[1]:http://www.midi.gouv.qc.ca/publications/en/planification/ [2]:https://www.google.com/search?q=site%3Ahttp%3A%2F%2Fwww.midi.gouv.qc.ca%2Fpublications%2Fen%2Fplanification%2F+filetype%3Apdf [3]:http://www.sfu.ca/~vvaezian/Summary/ [4]:https://www.google.com/search?q=site%3Ahttp%3A%2F%2Fwww.sfu.ca%2F~vvaezian%2FSummary%2F+filetype%3Apdf [5]:http://www.sfu.ca/~robson/Random