zoukankan      html  css  js  c++  java
  • Scrapy实战篇(七)之Scrapy配合Selenium爬取京东商城信息(下)

    之前我们使用了selenium加Firefox作为下载中间件来实现爬取京东的商品信息。但是在大规模的爬取的时候,Firefox消耗资源比较多,因此我们希望换一种资源消耗更小的方法来爬取相关的信息。
    下面就使用selenium加PhantomJS来实现之前的相同的逻辑。

    这里需要修改的就是spider.py文件,其余的部分并不需要做出修改,我们给phantomjs添加一个User-Agent信息,并且设置不加载图片,这样将会加快渲染的速度。

    spider.py

    from scrapy import Spider,Request
    from selenium import webdriver
    
    
    class JingdongSpider(Spider):
        name = 'jingdong'
    
        def __init__(self):
    
            SERVICE_ARGS = ['--load-images=false', '--disk-cache=true', '--ignore-ssl-errors=true']
            self.browser = webdriver.PhantomJS(service_args=SERVICE_ARGS)
            self.browser.set_page_load_timeout(30)
    
        def closed(self,spider):
            print("spider closed")
            self.browser.close()
    
        def start_requests(self):
            start_urls = ['https://search.jd.com/Search?keyword=%E6%96%87%E8%83%B8&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&suggest=1.his.0.0&page={}&s=1&click=0'.format(str(i)) for i in range(1,10,2)]
            for url in start_urls:
                yield Request(url=url, callback=self.parse)
    
    
        def parse(self, response):
            selector = response.xpath('//ul[@class="gl-warp clearfix"]/li')
            print(len(selector))
            print('---------------------------------------------------')
    

    执行程序,效果是一样的。

  • 相关阅读:
    如果用 索引的话,这个太不方便了,草,
    nslocal notification
    夜半三更,
    别人写的 代码,
    账目
    view 关于 controller的代理
    浅谈GFC
    浅谈IFC
    浅谈BFC
    JS ES6中的箭头函数(Arrow Functions)使用
  • 原文地址:https://www.cnblogs.com/cnkai/p/7570219.html
Copyright © 2011-2022 走看看