首页 > 其他 > 详细

爬虫scrapy的LinkExtractor

时间:2021-03-28 21:57:04      阅读:25      评论:0      收藏:0      [点我收藏+]

python爬虫scrapy的LinkExtractor
使用背景:

  我们通常在爬去某个网站的时候都是爬去每个标签下的某些内容,往往一个网站的主页后面会包含很多物品或者信息的详细的内容,我们只提取某个大标签下的某些内容的话,会显的效率较低,大部分网站的都是按照固定套路(也就是固定模板,把各种信息展示给用户),LinkExtrator就非常适合整站抓取,为什么呢?因为你通过xpath、css等一些列参数设置,拿到整个网站的你想要的链接,而不是固定的某个标签下的一些链接内容,非常适合整站爬取。
Link Extractors 是那些目的仅仅是从网页(scrapy.http.Response 对象)中抽取最终将会被follow链接的对象?

    def parse(self, response):
        link = LinkExtractor(restrict_xpaths=‘//ul[@class="cont_xiaoqu"]/li‘)
        links = link.extract_links(response)
        print(links)
        print(link.url,link.text)

allow:接收一个正则表达式或一个正则表达式列表,提取绝对url于正则表达式匹配的链接,如果该参数为空,默认全部提取
deny:接收一个正则表达式或一个正则表达式列表,与allow相反,排除绝对url于正则表达式匹配的链接,换句话说,就是凡是跟正则表达式能匹配上的全部不提取。
allow_domains:接收一个域名或一个域名列表,提取到指定域的链接。
deny_domains:和allow_doains相反,拒绝一个域名或一个域名列表,提取除被deny掉的所有匹配url。
restrict_xpaths:我们在最开始做那个那个例子,接收一个xpath表达式或一个xpath表达式列表,提取xpath表达式选中区域下的链接。
restrict_css:这参数和restrict_xpaths参数经常能用到,所以同学必须掌握,个人更喜欢xpath。
前面我们讲了这么多LinkExtractor的基本用法,上面的只是为了快速试验,真正的基本用法是结合Crawler和Rule,代码如下

    rules = {
        Rule(LinkExtractor(restrict_xpaths=restrict_xpath), callback="parse_item", follow=True)
    }

参考资料 python爬虫scrapy的LinkExtractor - Charles.L - 博客园

爬虫scrapy的LinkExtractor

原文:https://www.cnblogs.com/ministep/p/14589527.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!