硒渣
scrapy-selenium-python-pi的Python项目详细描述
#使用selenium的scrapy
scrapy中间件处理使用selenium的javascript页面。
您还需要selenium[兼容浏览器]之一(http://www.seleniumhq.org/about/platforms.jsp)。
添加要使用的浏览器、可执行文件的路径以及要传递给可执行文件的参数到scrapy设置:
``python
Chrome而不是Firefox。将“seleniummiddleware”添加到下载程序中间软件:
``python
`downloader\u middleware={
`scrapy\u selenium\u python pi.seleniummiddleware':800
}
`````
`usage
`use使用“scrapy\u selenium\u python pi.selenium request”,而不是下面这样的垃圾内置请求:
``python
`fromscrapy_selenium_python_pi import selenium request
yield seleniumrequest(url,self.parse_result)
```
请求将由selenium处理,响应将有一个名为“driver”的附加“meta”键,其中包含处理请求的selenium驱动程序。
``python
def parse_result(self,响应:
打印(response.meta['driver'].title)
```
有关可用驱动程序方法和属性的详细信息,请参阅[selenium python文档](http://selenium python.readthedocs.io/api.html module selenium.webdriver.remote.webdriver)
selector响应属性正常工作(但包含由selenium驱动程序处理的html)。
``python
def parse廑result(self,响应:
print(response.selector.xpath('//title/@text'))
````
selenium将在返回对spider的响应之前执行[显式等待](http://selenium python.readthedocs.io/waits.html显式等待)。
``python
来自selenium.webdriver.common.by
来自selenium.webdriver.support import expected_conditions as ec
yield seleniumrequest(
url,
self.parse_result,
wait_time=10,
wait/>wait_until=ec.element_要被点击((by.id,'someid')
`````
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `估计(
url,
self.parse_result,
screenshot=true
def parse_result(self,response):
以open('image.png','wb')作为image_文件:
image_file.write(response.meta['screenshot])
```
scrapy中间件处理使用selenium的javascript页面。
您还需要selenium[兼容浏览器]之一(http://www.seleniumhq.org/about/platforms.jsp)。
添加要使用的浏览器、可执行文件的路径以及要传递给可执行文件的参数到scrapy设置:
``python
Chrome而不是Firefox。将“seleniummiddleware”添加到下载程序中间软件:
``python
`downloader\u middleware={
`scrapy\u selenium\u python pi.seleniummiddleware':800
}
`````
`usage
`use使用“scrapy\u selenium\u python pi.selenium request”,而不是下面这样的垃圾内置请求:
``python
`fromscrapy_selenium_python_pi import selenium request
yield seleniumrequest(url,self.parse_result)
```
请求将由selenium处理,响应将有一个名为“driver”的附加“meta”键,其中包含处理请求的selenium驱动程序。
``python
def parse_result(self,响应:
打印(response.meta['driver'].title)
```
有关可用驱动程序方法和属性的详细信息,请参阅[selenium python文档](http://selenium python.readthedocs.io/api.html module selenium.webdriver.remote.webdriver)
selector响应属性正常工作(但包含由selenium驱动程序处理的html)。
``python
def parse廑result(self,响应:
print(response.selector.xpath('//title/@text'))
````
selenium将在返回对spider的响应之前执行[显式等待](http://selenium python.readthedocs.io/waits.html显式等待)。
``python
来自selenium.webdriver.common.by
来自selenium.webdriver.support import expected_conditions as ec
yield seleniumrequest(
url,
self.parse_result,
wait_time=10,
wait/>wait_until=ec.element_要被点击((by.id,'someid')
`````
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `估计(
url,
self.parse_result,
screenshot=true
def parse_result(self,response):
以open('image.png','wb')作为image_文件:
image_file.write(response.meta['screenshot])
```