【发布时间】:2016-04-26 19:52:22
【问题描述】:
我的意图是在这个网页上运行一个爬虫:http://visit.rio/en/o-que-fazer/outdoors/。但是,id="container" 上的一些资源仅通过 JavaScript 按钮 ("VER MAIS") 单击加载。我读过一些关于硒的东西,但我什么都没有。
【问题讨论】:
标签: javascript python scrapy web-crawler
我的意图是在这个网页上运行一个爬虫:http://visit.rio/en/o-que-fazer/outdoors/。但是,id="container" 上的一些资源仅通过 JavaScript 按钮 ("VER MAIS") 单击加载。我读过一些关于硒的东西,但我什么都没有。
【问题讨论】:
标签: javascript python scrapy web-crawler
你没看错,你最好的选择是使用 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()
【讨论】: