【问题标题】:Simulating a JavaScript button click with Scrapy使用 Scrapy 模拟 JavaScript 按钮单击
【发布时间】:2016-04-26 19:52:22
【问题描述】:

我的意图是在这个网页上运行一个爬虫:http://visit.rio/en/o-que-fazer/outdoors/。但是,id="container" 上的一些资源仅通过 JavaScript 按钮 ("VER MAIS") 单击加载。我读过一些关于硒的东西,但我什么都没有。

【问题讨论】:

    标签: javascript python scrapy web-crawler


    【解决方案1】:

    你没看错,你最好的选择是使用 Firefox 浏览器的 scrapy + selenium 或像 PhantomJS 这样的无头浏览器,以加快抓取速度。

    例子改编自https://stackoverflow.com/a/17979285/2781701

    import scrapy
    from selenium import webdriver
    
    class ProductSpider(scrapy.Spider):
        name = "product_spider"
        allowed_domains = ['visit.rio']
        start_urls = ['http://visit.rio/en/o-que-fazer/outdoors']
    
        def __init__(self):
            self.driver = webdriver.Firefox()
        def parse(self, response):
            self.driver.get(response.url)
    
            while True:
                next = self.driver.find_element_by_xpath('//div[@id="show_more"]/a')
    
                try:
                    next.click()
    
                    # get the data and write it to scrapy items
                except:
                    break
    
            self.driver.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      • 2011-10-04
      相关资源
      最近更新 更多