zoukankan      html  css  js  c++  java
  • scrapy LinkExtractor

    一、LinkExtrator就非常适合整站抓取

    import scrapy
    from scrapy.linkextractor import LinkExtractor
    
    class WeidsSpider(scrapy.Spider):
        name = "weids"
        allowed_domains = ["wds.modian.com"]
        start_urls = ['https://link.springer.com/journal/367/40/3']
    
        def parse(self, response):
            link = LinkExtractor(restrict_xpaths='//h3[@class="title"]/a')
            links = link.extract_links(response)
            print(links)

     allow:接收一个正则表达式或一个正则表达式列表,提取绝对url于正则表达式匹配的链接,如果该参数为空,默认全部提取。

    deny:接收一个正则表达式或一个正则表达式列表,与allow相反,排除绝对url于正则表达式匹配的链接,换句话说,就是凡是跟正则表达式能匹配上的全部不提取。

    allow_domains:接收一个域名或一个域名列表,提取到指定域的链接。

    deny_domains:和allow_doains相反,拒绝一个域名或一个域名列表,提取除被deny掉的所有匹配url。

    estrict_xpaths:我们在最开始做那个那个例子,接收一个xpath表达式或一个xpath表达式列表,提取xpath表达式选中区域下的链接。

    restrict_css:这参数和restrict_xpaths参数经常能用到,所以同学必须掌握,个人更喜欢xpath。

    tags:接收一个标签(字符串)或一个标签列表,提取指定标签内的链接,默认为tags=(‘a’,‘area’)。

    attrs:接收一个属性(字符串)或者一个属性列表,提取指定的属性内的链接,默认为attrs=(‘href’,),示例,按照这个中提取方法的话,这个页面上的某些标签的属性都会被提取出来,如下例所示,这个页面的a标签的href属性值都被提取到了。

    二、真正的基本用法是结合Crawler和Rule

    # -*- coding: utf-8 -*-
    import scrapy
    from scrapy.linkextractor import  LinkExtractor
    from scrapy.spiders.crawl import CrawlSpider,Rule
    
    
    class GaosieduSpider(CrawlSpider):
        name = "gaosiedu"
        allowed_domains = ["www.gaosiedu.com"]
        start_urls = ['http://www.gaosiedu.com/']
        restrict_xpath = '//ul[@class="schoolList clearfix"]'
        allow = '/gsschool/.+.shtml'
        rules = {
            Rule(LinkExtractor(restrict_xpaths=restrict_xpath), callback="parse_item", follow=True)
        }
    
        def parse_item(self,response):
            schooll_name = response.xpath('//div[@class="area_nav"]//h3/text()').extract_first()
            print(schooll_name)
  • 相关阅读:
    Core Expression
    Linux基础
    express
    C#程序模拟登录批量获取各种邮件内容信息
    Windows Phone 执行模型概述
    Wp8—LongListSelector控件使用
    网页背景图片自然缩放
    Unix sed实用教程系列目录[已完成]
    Unix sed实用教程开篇
    《SpringMVC从入门到放肆》十五、SpringMVC之上传文件
  • 原文地址:https://www.cnblogs.com/Mint-diary/p/13274511.html
Copyright © 2011-2022 走看看