使用python 第三方库 可以实现对任意域名的DNS解析,在对网页的爬取过程中,为了减小每次爬取时对域名DNS的解析这一过程的网络消耗,可以预处理出所有的域名的实际ip地址,完成一个对域名解析的DNS缓存,可以使用列表的另一个类似的容器:字典实现(当然也可以自己用列表实现字典),具体的代码如下:
为了能够提取出所有的超链接,可以将正则表达式中的 去掉,即将匹配的规则扩大到所有 a标签中的 href 属性的值,对于那些相对链接,可以在已知当前页面地址的情况下,使用 来实现相对地址向绝对地址的转换。
通过整合上面各个模块,分别使用dfs和bfs实现一个爬虫:
对于这个项目,仅爬取所有的html文件,故对其他二进制文件将不会请求下载,可以通过 来控制对文件的下载。
使用正则表达式: 提取出所有的a标签后的超链接,剔除不符合要求的链接,并对相对链接进行拼接得到绝对链接。
使用深搜的思想,爬取页面的所有链接:
使用广搜的思想进行爬取网页:
初始化测试等必要的参数,分别调用深搜和广搜的爬虫对同一网站进行爬取页面:
可以看出,深搜会不断的对网页的最开始的链接进行优先爬取,深度不断地递增,直到最深的页面所有链接都被访问后才会返回上一个指向它的页面进行爬取;对于广搜爬虫,会爬完一个页面的所有连接后,才会爬取第二个页面下的所有链接;深搜的过程可以看出从网站的某一根目录到其他页面的深度,而广搜的过程可以看出每一个页面所包含的页面。
运行结果:
可以看出三个函数分析出了每一个标签的开始、内容以及结束等信息
使用lxml提取出第一个html中所有的h1标签的值,提取出后一个html中所有的表格信息以及单独提取出最后一行
通过bs4来提取每一个标签内的值
对于计算余弦相似度,可以利用公式: 来计算
一些网页的数据请求通过对url赋值来实现数据的传输,所以只需要观察构造出符合的url即可:
对于参数间使用 来连接,url和参数间使用 来连接
将浏览器中的cookie保存到本地,使用cookie对网页请求,可以模拟登录爬取网页
对于一些网站,其页面的数据是动态变化的,网页的部分数据是通过ajax等动态请求的:
在爬取一些可能针对不懂访问者的页面,需要模拟真实登录者来爬取数据,此时要规定 以及 等参数
因为可能时间比较久,实验指导书上的示例代码实际上因为目标网站的页面更新已经不能使用了,需要修改一些地方:
最后查看同一目录下的结果文件:
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.dbeile.cn/news/892.html