【发布时间】:2019-10-04 04:52:47
【问题描述】:
from scrapy_selenium import SeleniumRequest
import scrapy
from selenium import webdriver
class testspider1(scrapy.Spider):
driver=webdriver.Firefox(executable_path=r"C:\Users\test\Desktop\geckodriver")
name = 'test5'
start_urls=['http://httpbin.org/ip']
def parse(self, response):
print(response.body)
url = "https://www.target.com/p/cesar-canine-cuisine-filet-mignon-flavor-wet-dog-food-3-5oz-tray/-/A-14903668"
yield SeleniumRequest(url=url,callback=self.parse_result)
def parse_result(self,response):
image = response.xpath('//*[@id="mainContainer"]/div/div/div[1]/div[1]/div[2]/div[1]/div/div/div/div/div/div/div/a/div/div/div/div/div/img/@src').extract_first()
price = response.selector.xpath('//*[@id="mainContainer"]/div/div/div[1]/div[2]/div/div[1]/span/text()').extract_first()
print(image)
print("\n\n")
print(price)
设置文件:
from shutil import which
BOT_NAME = 'seleniumtest'
SPIDER_MODULES = ['seleniumtest.spiders']
NEWSPIDER_MODULE = 'seleniumtest.spiders'
SELENIUM_DRIVER_NAME = 'firefox'
SELENIUM_DRIVER_EXECUTABLE_PATH = which('geckodriver')
SELENIUM_BROWSER_EXECUTABLE_PATH = which(r"C:\Users\test\Desktop\geckodriver")
ROBOTSTXT_OBEY = True
DOWNLOADER_MIDDLEWARES = {
'scrapy_selenium.SeleniumMiddleware': 800
}
documentation on scrapy-selenium
我已逐步按照说明进行操作,但驱动程序没有遵循任何链接。我相信这两个请求都是由 scrapy 处理的。我不想更改__init__,因为我希望通过scrapy(单独)使用scrapy-selenium 处理一些请求。
我检查了passing-selenium-driver-to-scrapy,但它更改了整个init 以使selenium 成为self.driver。
我希望 SeleniumRequest 处理一些请求,其他请求由 scrapy Request 处理
注意:我已将此站点用作使用 java 显示结果的示例站点,如果尚未呈现由 scrapy(单独)处理的数据,则结果将是空列表
【问题讨论】:
-
这怎么破你能发回溯吗?