import scrapy
from scrapy_selenium import SeleniumRequest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com']
def start_requests(self):
# 使用SeleniumRequest替代原始的Scrapy Request
yield SeleniumRequest(
self.parse,
url='http://example.com', # 需要用Selenium加载的起始URL
wait_time=5, # 等待Selenium完成操作的时间
screenshot=True, # 是否在加载页面时进行截图
)
def parse(self, response):
# 这里的response已经是用Selenium加载完成的页面
# 可以进行标准Scrapy的爬取操作
pass
这个例子展示了如何使用scrapy_selenium
库中的SeleniumRequest
来替代Scrapy中的普通Request
。这样可以使用Selenium来处理JavaScript渲染的页面,并且可以进行页面截图。在parse
方法中,你可以使用标准的Scrapy选择器来提取页面数据。