import scrapy
from selenium import webdriver
from scrapy.loader import ItemLoader
from scrapy.loader.processors import Join,MapCompose
from scrapy.crawler import CrawlerProcess
from scrapy.http import HtmlResponse
class TestSpider(scrapy.Spider):
name = "plus"
start_urls = ['http://httpbin.org/anything']
def __init__(self):
scrapy.Spider.__init__(self)
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument("disable-infobars")
options.add_argument('--disable-browser-side-navigation')
options.add_argument("--start-maximized")
self.driver = webdriver.Chrome(chrome_options=options)
def __del__(self):
try:
scrapy.Spider.__del__(self)
except:
print("No __del__ method")
def process_request(self, request, spider):
self.driver.get(request.url)
body = self.driver.page_source
print(body)
return HtmlResponse(self.driver.current_url, body=body, encoding='utf-8', request=request)
def parse(self,response):
print(response.text)
self.driver.quit()
process = CrawlerProcess({'LOG_LEVEL':'INFO',
})
process.crawl(TestSpider)
process.start()
我遇到的问题是,当通过签证提出请求时,没有调用process_request
。我如何操纵纸卷如何处理请求,以免我提出两个请求,一个是通过砂纸和一个通过硒来提出的。
amjasd。 Wishmaster 是完全正确的,您应该使用下载中间件并将硒放在那里。但这不是一个好主意,因为在这种情况下,您爬行者会同步。一个更好的主意是使用综合水族馆的飞溅或飞溅集群