从因特网上获取数据的软件包

web-scraper的Python项目详细描述


此软件包包括用于在网页及其子网页中查找链接的模块。

在主模块中,使用两个子模块找到链接,然后将其相加:

  1. 使用谷歌搜索结果(使用谷歌搜索获取链接

因为我们可以指定我们在google中搜索时要查找的文件类型,所以这种方法会删除这些结果。 但这种方法并不完整:

  1. google搜索是基于爬虫的,有时它们的索引不正确。例如,[this][1]网页目前(2018年8月7日)有三个pdf文件,但当我们[使用谷歌搜索][2]查找它们时,它只找到两个,尽管这些文件是4年前上传的。
  2. 它不适用于一些网站。例如[这个][3]网页有三个pdf文件,但google[找不到任何][4]。
  3. 如果在短时间内发送了许多请求,google将阻止访问并要求解决验证码问题。
  1. 使用直接方法查找给定页面中的所有url,如果它们引用子页面并递归搜索,则跟踪这些链接(直接获取链接

虽然此方法不会丢失它到达的页面中的任何文件(与方法1不同,方法1有时会丢失),但它可能不会找到所有文件,因为:

  1. 域中的某些网页可能是孤立的,即父网页中没有指向它们的链接。在这些情况下,上述方法1起作用。
  2. 在极少数情况下,指向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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有x86javapath的x64机器上x86java上的java JNI未满足链接错误   java将Pixmap的一部分上传到GPU   图像Java位图RLE8格式   java Android studio谷歌广告崩溃应用程序   java如何创建包含未知数量对象的变量?   Java计算给定int数组的所有可能组合   java JDBC classnotfound异常   httpclient中的java将HttpEntity转换为字符串的最优雅/正确的方法是什么?   如何从Java程序运行nano?   java在安卓中调用自定义类/方法   调用方法和JOptionPane后,允许代码继续执行所需的java计时器或其他想法   关于侦听器的向量Java并发问题   线程池执行器Java线程池   java配置DTO上的Swagger javax验证约束   Java中用于按钮功能的swing操作命令   ServletOutputStream中的java设置状态代码   java打印输入数组的平均值