声明: 此篇博客仅用于学习交流使用 任何用于非法用途的均与作者无关
需要登陆pc端淘宝账号
本案例所使用到的模块及工具:
- Drissionpage 自动化模块 pip instal drissionpage
- Json
- time
- pandas 保存数据模块
网址: 淘宝 (taobao.com)
爬取步骤:
一.初始化浏览器
- 导包 from DrissionPage import ChromiumPage
初始化浏览器 dp = ChromiumPage()
二.打开淘宝首页
输入淘宝网址 dp.get('https://taobao.com/')
通过元素定位搜索框在里面输入关键字 dp.ele('css:#q').input('显示器')
通过元素定位搜索框按钮 dp.ele('css:.btn-search.tb-bg').click()
- 右击检查 or F12 打开开发者工具 点开元素面板
三.定位搜索框输入关键词
1.找到输入框的元素 通过id 定位
四.点击搜索按钮
2.同样定位搜索按钮的元素 通过class属性定位 语法与css相同
4.打开开发者工具 点击网络界面 Ctrl+F 搜索我们想要的数据
找到包含数据的数据包
使用time 模块
复制网址的一段 监听数据包
dp.listen.start('callback=mtopjsonp12')打开当前的网址
dp.get(f'https://s.taobao.com/search?commend=all&ie=utf8&initiative_id=tbindexz_20170306&page=1&q=%E6%98%BE%E7%A4%BA%E5%99%A8&search_type=item&sourceId=tb.index&spm=a21bo.jianhua%2Fa.201856.d13&ssid=s5-e&tab=all') # 里面的page 值可以做分页爬取 dp.scroll.to_bottom() # 将当前页面滑动到底部 r = dp.listen.wait() # 等待数据包的加载
分页爬取有两个方法第一个是
- 采取完一页的数据后通过元素定位 点击页面下的下一页
- 将我们的淘宝浏览器地址复制 到for 循环中 也是本次案例的做法
五.DrissionPage 的优点:
- 操作便捷高效:提供了简洁直观的 API,对于常见的网页操作如点击、输入、获取元素等,都可以用简单的代码实现,开发效率高。例如,使用
page.get_element()
方法就能轻松获取指定元素,无需复杂的定位逻辑。 - 集成度高:将浏览器驱动的管理和网页操作进行了很好的集成,不需要额外安装和配置复杂的浏览器驱动,简化了使用流程,降低了使用门槛。
- 功能丰富全面:支持多种浏览器,包括 Chrome、Firefox、Edge 等主流浏览器,能满足不同用户对浏览器的需求。同时,还提供了诸如截图、执行 JavaScript 脚本、处理弹框等丰富的功能。
- 稳定性较好:在处理网页加载和元素定位方面具有较好的稳定性,能够自动等待页面元素加载完成后再进行操作,减少了因页面加载缓慢导致的操作失败的情况。
标签:定位,浏览器,Python,元素,JS,爬取,搜索,dp From: https://blog.csdn.net/2302_80243887/article/details/144582094