私はリンクを解析してhtmlコンテンツを返す治療のCrawlspiderを持っています。しかし、javascriptのページでは、私は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
正確にはうまくいかないあなたが試したこと。 – Mobrockers
注:あなたは 'selenium'を使っているようにスクリプトの変数名としてモジュール名を使用しないでください –