修改砂纸过程请求


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 是完全正确的,您应该使用下载中间件并将硒放在那里。但这不是一个好主意,因为在这种情况下,您爬行者会同步。一个更好的主意是使用综合水族馆的飞溅或飞溅集群

最新更新