
最近在使用scrapy爬取网页时遇到很多不能正常显示、a标签链接失效的情况,多是因为爬下来的网页和路径已经失去了原有的结构,网页无法根据标签的src或者标签的href找到对应的资源,下面就这个问题展开一个小研究。
首先,做这个工作是一定要修改网页的,所以我们引入BeautifulSoup库对网页进行解析。
其次,在本文中 所有的网页以域名为目录名进行保存 。
下面我们 分情况讨论 。
大体上看,网页中的链接有以下几种格式:
第一种情况,链接直接以/开头,很明显是从网站的根目录开始检索,那么我们直接将该网站的存储路径加在page前即可(home_path代表当前网页在我们系统中保存的路径,包含域名):
第二种情况,链接直接以>
如果你的网站页面经常更新,爬虫就会更加频繁的访问页面,优质的内容更是爬虫喜欢抓取的目标,尤其是原创内容。
如果你做了许多努力仍没有被爬虫抓取,可以看一下老渔哥给出的两点建议:
1、不建议站点使用js生成主体内容,如过js渲染出错,很可能导致页面内容读取错误,页面则无法被爬虫抓取。
2、许多站点会针对爬虫做优化,建议页面长度在128k之内,不要过长。
对于只是读取某几个网站更新内容的爬虫完全没必要在python代码中实现增量的功能,直接在item中增加Url字段。 item['Url'] = responseurl 然后在数据端把储存url的column设置成unique。 之后在python代码中捕获数据库commit时返回的异常
以上就是关于scrapy爬取整个网页时如何避免链接失效全部的内容,包括:scrapy爬取整个网页时如何避免链接失效、关于Scrapy爬取1000张网页的问题、如何让网页被爬虫抓取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)