文章在线采集器(东南大学网络爬虫博客网站的robots.txt内容为例)
优采云 发布时间: 2021-11-10 21:03文章在线采集器(东南大学网络爬虫博客网站的robots.txt内容为例)
文章在线采集器通常是指可以直接将web页面的内容作为关键词在线抓取下来,从而满足数据采集者的需求,因此本文介绍的是一个爬虫软件的制作工具,全文代码示例。将百度一搜里面的资源爬取下来,可能是我们常见的生活中常见的问题,比如上面有哪些商品值得购买?或者在百度自己上面,搜索某一类的产品相关的内容,那么在线工具通常都可以快速给出解决方案,但爬虫软件可以在不破坏原有目录的情况下,用xpath的语法完成抓取网页内容,并且采集下来的内容可以自由进行修改和调整,并且可以自由推送到浏览器中。
下面以国内有名的东南大学网络爬虫博客网站的robots.txt内容为例,进行讲解。首先我们看看网站的地址,:该网站为百度搜索的top10。我们可以看到,网站没有任何爬虫代码,为何百度可以动作呢?首先robots.txt被user-agent解析,能看到外国网站标签的东南大学不在这个网站的编辑列表,所以百度无法采集,再看看有哪些国外的网站百度就能直接采集了。
其次我们看看网站的标签是否符合我们要抓取的内容,具体标签如下图所示,原标签图片等,为红色标注,网站有加密,查看加密方式是否是xpath,因为xpath并不是必须标签,那么怎么解析呢?我们发现网站既没有加密,而是没有用xpath的形式做标注,这显然不符合要求,我们以抓取性能上较好的flask为例,将flask的scrapyflask-siteapp.py脚本代码复制粘贴到/scrapy-flask目录下,可以看到当我们访问网站时,只是得到文本页面的代码而已,并没有抓取其中的元素内容,所以要爬取性能好的web页面,我们还需要自己写一个flask-scrapy的flask爬虫才可以抓取部分网页内容的。
那么问题来了,我们抓取js是否可以抓取呢?这个问题其实很简单,我们发现直接用xpath操作网页,无法解析,我们仔细观察web页面源码后发现html文件是一堆的html标签,其中包含分组list标签,item标签的内容和其他标签的内容是连接在一起的,或者说每一个标签的内容都在这些标签之中,或者说标签的内容是其他标签的内容加上它们的内容。
我们看到整个页面的内容是html文件的一个集合,我们获取所有网页内容中的任意一个元素,并将它放到内存中就是这一整段网页内容。当我们想获取某一个标签,如item标签的一段时,则对网页进行字符串拼接的形式获取,当这个网页的内容比较大,我们可以通过flask-scrapy的flask获取全部网页内容,这样即可,对于内存中的代码,后端可以自动请求,从而获取到最终结果。