【发布时间】:2016-10-17 16:20:26
【问题描述】:
我有一个scrapy Crawlspider 可以解析链接并返回html 内容就好了。然而,对于 javascript 页面,我让 Selenium 访问“隐藏”内容。问题是,虽然 Selenium 在 scrapy 解析之外工作,但它在 parse_items 函数内部不起作用
from scrapy.spiders import CrawlSpider, Rule, Spider
from scrapy.selector import HtmlXPathSelector
from scrapy.linkextractors import LinkExtractor
from scrapy.linkextractors.sgml import SgmlLinkExtractor
from craigslist_sample.items import CraigslistReviewItem
import scrapy
from selenium import selenium
from selenium import webdriver
class MySpider(CrawlSpider):
name = "spidername"
allowed_domains = ["XXXXX"]
start_urls = ['XXXXX']
rules = (
Rule(LinkExtractor(allow = ('reviews\?page')),callback= 'parse_item'),
Rule(LinkExtractor(allow=('.',),deny = ('reviews\?page',)),follow=True))
def __init__(self):
#this page loads
CrawlSpider.__init__(self)
self.selenium = webdriver.Firefox()
self.selenium.get('XXXXX')
self.selenium.implicitly_wait(30)
def parse_item(self, response):
#this page doesnt
print response.url
self.driver.get(response.url)
self.driver.implicitly_wait(30)
#...do things
【问题讨论】:
-
您没有描述究竟是什么不起作用,也没有描述您尝试了什么。我们有点需要知道
#...do things实际做了什么...... -
注意:请不要像使用'selenium'一样在脚本中使用模块名作为变量名
标签: python python-2.7 selenium selenium-webdriver scrapy