selenium爬取动态渲染吗??

本文介绍使用Selenium进行动态网页爬虫的方法,包括安装Selenium和ChromeDriver,配置ChromeDriver路径,以及如何模拟浏览器操作来爬取动态加载的内容。文章还提供了突破网站对Selenium屏蔽的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爬? 使?Selenium爬取动态渲染??

模拟浏览器操作爬取??

安装Selenium
pip3 install selenium
安装ChromeDriver
ChromeDriver与Chrome对照表
ChromeDriver v2.41 (2018-07-27)—————Supports Chrome v67-69
ChromeDriver v2.40 (2018-06-07)----------Supports Chrome v66-68
ChromeDriver v2.39 (2018-05-30)----------Supports Chrome v66-68
ChromeDriver v2.38 (2018-04-17)----------Supports Chrome v65-67
ChromeDriver v2.37 (2018-03-16)----------Supports Chrome v64-66
ChromeDriver v2.36 (2018-03-02)----------Supports Chrome v63-65
ChromeDriver Mirror

将chromdriver.exe ?件放到Python Scripts?录下或配置PATH路径

命令?执?chromedriver

from selenium import webdriver
brower = webdriver.Chrome()
selenium.webdriver.common.by.By
CLASS_NAME = 'class name'
CSS_SELECTOR = 'css selector'
ID = 'id'
LINK_TEXT = 'link text'
NAME = 'name'
PARTIAL_LINK_TEXT = 'partial link text'
TAG_NAME = 'tag name'
XPATH = 'xpath'

selenium 被反爬?识别

isWebdriver:function(){return!!navigator.webdriver}

如何突破?站对selenium的屏蔽_鲲鹏Web数据抓取 - 专业Web数据采集服务提供商

*ActionChains?法 *
click(on_element=None) ——单击鼠标左键
click_and_hold(on_element=None) ——点击鼠标左键,不松开
context_click(on_element=None) ——点击鼠标右键
double_click(on_element=None) ——双击鼠标左键
drag_and_drop(source, target) ——拖拽到某个元素然后松开
drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开
key_down(value, element=None) ——按下某个键盘上的键
key_up(value, element=None) ——松开某个键
move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标
move_to_element(to_element) ——鼠标移动到某个元素
move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上?坐
标)多少距离的位置
perform() ——执?链中的所有动作
release(on_element=None) ——在某个元素位置松开鼠标左键
send_keys(*keys_to_send) ——发送某个键到当前焦点的元素
send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素
Scrapy结合Selenium进行动态网站爬取主要是为了应对那些基于JavaScript渲染的内容。因为Selenium能控制浏览器的行为,而Scrapy则负责提取数据。以下是基本步骤: 1. **安装依赖**:首先需要安装`selenium`库以及对应的WebDriver,例如ChromeDriver或者FirefoxDriver。 2. **配置Scrapy项目**:在Scrapy项目的settings.py中启用`.SeleniumMiddleware`,并设置相关的参数,如webdriver路径。 3. **创建Spider**:在Spider中,除了常规的起始URL和解析函数外,还需定义一个启动下载的过程,使用`selenium.webdriver.Chrome()`初始化浏览器实例。 ```python from selenium import webdriver class DynamicSiteSpider(scrapy.Spider): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.browser = webdriver.Chrome() def start_requests(self): yield scrapy.Request(url=self.start_url, callback=self.parse_with_selenium) def parse_with_selenium(self, response): # 在这里,你可以使用浏览器打开页面,等待元素加载完成 self.browser.get(response.url) # 等待页面加载完毕,可以通过特定的元素(如CSS选择器或XPath)查找动态内容 dynamic_content = self.browser.find_element_by_css_selector('...') # 获取动态内容后,将其转化为Scrapy可以处理的文本或HTML,然后交给Scrapy处理 yield { 'data': dynamic_content.text } # 关闭浏览器 self.browser.quit() ``` 4. **处理结果**:在`parse_with_selenium`方法中,Scrapy Spider接收到的不再是原始的HTML,而是经过Selenium渲染后的数据,再进一步解析即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值