首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

CrawlSpider 怎么针对多个爬取站点设置 rules 或者 Rule ???

  •  
  •   Northxw · 28 天前 · 444 次点击

      如题,先放一段代码:

        start_urls = ['https://bj.58.com/ershouche/',
                      'https://www.guazi.com/bj/buy/']
    
        rules = (
            # Rule(LinkExtractor(restrict_css='div.main_list.clearfix > div.info_list > ul > li > div.col.col2 > a'), callback='parse_item'),
            # Rule(LinkExtractor(restrict_css="a[class='next']"))
            Rule(LinkExtractor(restrict_xpaths='div.list-wrap.js-post > ul > li > a'),
                 # process_request='parse_guazi_request',
                 callback='parse_guazi'),
        )
    
    
    

    我的需求:根据 start_urls 先抓取 58 同城二手车信息,然后执行相应的 rules 或 Rule ;然后,抓取瓜子二手车信息,再执行相应的 rules 或者 Rule。

    目前的困难:不知都该怎么针对不同的抓取链接写 rules 或 Rule, 尝试过写在一个里面,行不通。所以前来拜求解决方案。先谢谢大家。

    5 回复  |  直到 2019-04-22 19:58:43 +08:00
        1
    dsg001   28 天前
    分成两个爬虫呗,58 的爬虫直接入库,瓜子的爬虫从数据库中获取信息
        2
    Northxw   28 天前
    @dsg001 但是我想要在一个 spider 里面完成,毕竟是 crawlspider, 如果不能达到通用化,做着就没意思嘞
        3
    snappyone   28 天前
    写一个带通用方法的爬虫,然后根据配置生成不同实例
        4
    dsg001   28 天前
    @Northxw CrawlSpider 改的太多,还不如用 Spider 控制流程
        5
    Northxw   28 天前
    @snappyone 我的思路就是通用爬虫。哈哈。

    @dsg001 不不不,我只做到半通用化,好理解化就可以啦。全部配置我也不喜欢。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1225 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 23:10 · PVG 07:10 · LAX 16:10 · JFK 19:10
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1