首页 > 编程语言 >Python 自动化爬虫 绕过JS逆向 爬取淘宝商品数据

Python 自动化爬虫 绕过JS逆向 爬取淘宝商品数据

时间:2024-12-21 22:56:07浏览次数:6  
标签:定位 浏览器 Python 元素 JS 爬取 搜索 dp

声明: 此篇博客仅用于学习交流使用  任何用于非法用途的均与作者无关

需要登陆pc端淘宝账号

本案例所使用到的模块及工具:

  1. Drissionpage   自动化模块   pip instal drissionpage
  2. Json
  3. time
  4. 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()

 

  1.  右击检查 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()     # 等待数据包的加载

分页爬取有两个方法第一个是 

  1. 采取完一页的数据后通过元素定位 点击页面下的下一页
  2. 将我们的淘宝浏览器地址复制 到for 循环中 也是本次案例的做法

       

五.DrissionPage 的优点:

  • 操作便捷高效:提供了简洁直观的 API,对于常见的网页操作如点击、输入、获取元素等,都可以用简单的代码实现,开发效率高。例如,使用page.get_element()方法就能轻松获取指定元素,无需复杂的定位逻辑。
  • 集成度高:将浏览器驱动的管理和网页操作进行了很好的集成,不需要额外安装和配置复杂的浏览器驱动,简化了使用流程,降低了使用门槛。
  • 功能丰富全面:支持多种浏览器,包括 Chrome、Firefox、Edge 等主流浏览器,能满足不同用户对浏览器的需求。同时,还提供了诸如截图、执行 JavaScript 脚本、处理弹框等丰富的功能。
  • 稳定性较好:在处理网页加载和元素定位方面具有较好的稳定性,能够自动等待页面元素加载完成后再进行操作,减少了因页面加载缓慢导致的操作失败的情况。


 

        

        

标签:定位,浏览器,Python,元素,JS,爬取,搜索,dp
From: https://blog.csdn.net/2302_80243887/article/details/144582094

相关文章

  • node.js基于Web的连锁餐饮智能管理系统程序+论文 可用于毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于餐饮管理系统的研究,现有研究主要以传统餐饮管理系统为主,专门针对连锁餐饮的智能管理系统研究较少。在国内外,传统餐饮管理系统已发展到一定阶段,有诸......
  • python: Connecting to Oracle 11g Database in Python
     #encoding:utf-8#版权所有2024涂聚文有限公司#许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎#描述:python-mpipinstalloracledb#python-mpipinstallcx_Oracle--upgrade#pipinstallcx_Oracle#Author:geovindu,GeovinDu涂聚文.#......
  • Python 潮流周刊#82:美国 CIA 如何使用 Python?(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。分享了12篇文章,12个开源项目,全文2200字。以下是本期摘要:......
  • node.js毕设基于和vue的直播带货系统后端 论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于直播带货系统的研究,现有研究多集中在其商业运营模式和市场发展趋势方面3。在技术实现层面,虽有部分涉及,但专门针对基于SpringBoot和Vue构建直播带货......
  • node.js毕设宏泰购物广场停车场管理系统小程序端 论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于停车场管理系统的研究,现有研究主要以大型公共场所(如机场、火车站等)为主,专门针对购物广场停车场管理系统的研究较少。在国内外,大型公共场所停车场管......
  • 【Web】0基础学Web—函数、箭头函数、函数闭包、函数参数、js作用域、字符串
    0基础学Web—函数、箭头函数、函数闭包、函数参数、js作用域、字符串函数函数声明函数调用函数事件调用函数匿名函数立即执行函数箭头函数函数闭包函数参数js作用域字符串字符串创建字符串方法字符串拼接字符串截取去除字符串首尾空格遍历其他函数function函数名(......
  • Node.js 单元测试指南:使用 Mocha 和 Chai 提高代码质量
    Node.js单元测试指南:使用Mocha和Chai提高代码质量随着Node.js项目的逐渐增大,单元测试(UnitTesting)成为确保代码质量、稳定性和可维护性的重要手段。在Node.js开发中,Mocha和Chai是两个非常流行的单元测试工具,前者用于执行测试,而后者提供了丰富的断言库。在本文......
  • webbroker调用axios.min.js
    <head><scriptsrc="axios.min.js"></script></head><body><p>实现前端调用后端的HTTP请求的方法:<br>https://www.cnblogs.com/hgdzjp/p/9438893.html</p><pid="demo22">aaa</p><scri......
  • 用Python开发高级游戏:实现3D迷宫游戏
    Python虽然被认为是一门简单易学的语言,但它在游戏开发领域同样具有强大的潜力,尤其是结合诸如Pygame、Panda3D、PyOpenGL等框架,可以开发出复杂的游戏。在本文中,我们将通过一个示例,介绍如何使用Python开发一个高级3D迷宫游戏。本文使用的框架是Panda3D,一个专为3D游戏开发设......
  • 6.python列表
    Python列表(List)深度总结文章目录Python列表(List)深度总结1.列表的基本概念2.访问列表中的元素3.修改列表4.删除列表元素5.列表的操作符6.列表的内置函数7.列表的方法8.列表的高级用法8.1列表推导式(ListComprehensions)8.2列表的浅拷贝与深拷贝8.3......