我有两个项目,一个使用Selenium,另一个使用Scrapy-Selenium,它适合Scrapy蜘蛛程序格式,但使用Selenium进行自动化。
我可以让Chromedriver加载我想要的基本Selenium程序的页面,但是关于第二个项目(使用Scrapy)的某些东西阻止它加载URL。相反,它停留在显示data:,
第一个项目(工作正常):
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(executable_path="./chromedriver")
driver.get("https://ricemedia.co")
第二个项目(不加载页面):
import scrapy
from scrapy_selenium import SeleniumRequest
from selenium import webdriver
import time
class ExampleSpider(scrapy.Spider):
name = 'rice'
def start_requests(self):
yield SeleniumRequest(
url="https://ricemedia.co",
wait_time=3,
callback=self.parse
)
def parse(self, response):
driver = webdriver.Chrome(executable_path="./chromedriver")
driver.maximize_window()
time.sleep(20)
我已经浏览了StackOverflow和Google,两个最常见的原因是过时的Chrome驱动程序和URL中缺少http。对我来说也不是这样。chromedriver的路径看起来也不错(这两个项目在同一文件夹中,以及相同的chromedriver)。既然一个工作,而另一个不能,它应该与我的Scrapy-Selenium蜘蛛有关。
我应该补充说,我已经在我的虚拟环境中使用pip本地安装了Scrapy, Selenium和Scrapy-Selenium,我怀疑这是安装问题。
请帮忙,谢谢!
您可以使用另一种方法安装chrome驱动程序:首先安装Webdriver管理器使用以下pip install webdriver-manager
或使用maven dep来获得它
然后代码:
# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())