python-selenium实现动态网页抓取

本文介绍了如何使用Python的Selenium库抓取动态网页内容,包括设置浏览器模拟、交互操作、等待策略,以及动态网页中数据的存储方法,如文本和数据库存储,并以MySQL数据库为例展示了数据操作的示例代码。

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

以前我们都是手动去获取的,这次说一下动态页面的爬取,可以通过AJAX请求和响应的解析实现,但JS动态渲染方式不止AJAX一种,还有那种不含AJAX的,这种可以使用模拟浏览器运行的方式。即做到可见即可查,这样不用再管JS用什么算法渲染页面了,也不用管AJAX接口到底有哪些参数。

先说说浏览器模拟库
1、selenium自动化测试工具,利用它可以驱动浏览器执行点击、下拉等操作,还可以获取当前页面的源代码。>>>pip3 install selenium事先安装 >>>import selenium验证。同时安装ChromeDriver驱动Chrome,请根据版本进行安装
2、实现安装后,首先声明浏览器对象,
brower = webdriver.Chrome()
3、输入url,
brower.get(‘url’)
4、查找节点对象
单个节点brower.find_element(By.ATTR,‘attr’) 其中ATTR包括ID、XPATH、LINK_TEXT、CLASS_NAME等,都要大写哦,attr填入相应信息就可以了,如:brower.find_element(By.CLASS_NAME,‘register_dialog’)
多个节点组在element加s
5、节点交互,如输入文字.send_keys("") 清空.clear()点击.click()也可以通过回车实现点击
6、动作链,访问网页时,一些交互,如拖动鼠标
先声明动作链 actions = ActionChains(brower)
从哪拖到哪actions.drag_and_drop
7、执行JS actioons.perform() 但对于某些操作,selenium不提供如:下拉进度条
8、获取节点信息 获取属性.get_attribute() 、
获取文本值 .text、
获取id、位置、标签名和大小.id属性 .location属性.tag_name属性.size属性
9、切换Frame
brower.switch_to.fr

使用PythonSelenium可以实现动态网页抓取。首先,确保您已经安装了Python 3.5和Selenium。如果没有安装,您可以通过使用pip命令来安装Selenium:pip3 install selenium。 接下来,您需要下载并配置PhantomJS。PhantomJS是一个无界面浏览器,可以用于模拟用户与网页的交互。您可以从官方网站下载PhantomJS,并将其解压到Python的Scripts目录下。 接下来,您可以使用以下代码来实现动态网页抓取: ```python from selenium import webdriver # 创建PhantomJS浏览器对象 driver = webdriver.PhantomJS() # 打开网页 driver.get('http://example.com') # 执行一些操作,例如点击按钮或滚动页面 # 获取页面内容 content = driver.page_source # 关闭浏览器 driver.quit() # 处理页面内容,提取所需信息 # ... ``` 在这个例子中,我们首先创建了一个PhantomJS浏览器对象,然后使用`get()`方法打开了一个网页。您可以在此之后执行一些其他操作,例如点击按钮或滚动页面。 最后,使用`page_source`属性获取页面内容,然后可以根据需要处理页面内容并提取所需信息。 请注意,Selenium还支持其他浏览器,如Chrome和Firefox。您可以根据自己的需要选择使用哪个浏览器。 希望这个回答能够帮助到您。请随时提问,如果您有任何进一步的疑问。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值