DrissionPage采集京东商品信息

本文介绍了如何使用DrissionPage库自动化操作,包括模拟搜索、登录验证、动态页面滑动抓取,以及从商品列表中提取标题、价格等信息,详细展示了如何完成京东商品数据的单页和翻页抓取。

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

前言:

        东子的商品数据获取,方法还是有很多的,常规的爬虫采集的话,需要去解密他的列表页参数,其次的话就是自动化selenium采集,这个也是普遍的方式,但现在全网大部分平台对selenium都有一定的风控检测,及其容易被发现,所以我们趁着drissionpage的这波热度,再来简单跑个数据采集的脚本吧!

流程分析:

        ①这一块其实也是简单的自动化操作,所以定位下搜索框,找到对应的元素即可!然后用python模拟一下做一个基本的访问!

from DrissionPage import ChromiumPage
cp = ChromiumPage()
cp.get('https://www.jd.com/')
cp.ele('xpath://*[@id="key"]').input('电脑')
cp.ele('xpath://*[@id="search"]/div/div[2]/button').click()
cp.wait.load_start()

        ②进去之后会有一个基本的信息登录验证,同样的找到对应账户和密码的输入框进行点击操作。这里有个小点需要注意,dp库可以保留cookie信息即账户信息,在你进行账户密码登录模拟的过程中,dp记录了这个操作,所以后续你进行程序访问,可以注释账户密码的元素代码,一样能够实现登录!

cp.ele('css:#loginname').input(account)
time.sleep(1)
cp.ele('css:#nloginpwd').input(password)
time.sleep(1)
cp.ele('css:#loginsubmit').click()
cp.wait.load_start()

        ③进入商品列表页面之后,会发现这是个动态加载的页面,我们需要保证每条数据的抓取,就要写入程序滑动的操作才可行。这里我简单构建了一个滑动条的脚本,大部分的动态网页刷新都可以滑动,感兴趣的朋友可以去尝试。

    def scroll_page(page, scroll_times=10):
        for _ in range(scroll_times):
            page.actions.scroll(0, 5000)
            time.sleep(1)
    scroll_page(cp)

        ④商品抓取,先找到包含所有商品标签的父元素 #J_goodsList > ul 再针对其下方的单个元素,包含(标题,价格,详情页,评论量,店铺信息)进行提取操作,获取每一个元素的文本信息!

title = li.ele('css:.p-name em').text.replace('\n', '')
price = li.ele('css:.p-price i').text + '¥'
commit = li.ele('css:.p-commit a').text
shop = li.ele('css:.p-shop a').text
href = li.ele('css:.p-img a').link

基本上到了这一步就完成了单页数据的抓取了,想进行翻页抓取更多内容的话,可以直接找到翻页的元素标签 pn-next 针对这块的操作即可完美复现京东商品数据全部采集!

### MySQL 实战教程 45 内容概述 #### 关系型数据库基础 介绍了关系型数据库的概念及其优势,解释了为什么 MySQL 成为了 Web 应用中最受欢迎的关系型数据库管理系统之一[^3]。 #### 安装配置与环境搭建 指导如何安装 MySQL 并完成基本设置,确保读者能够顺利启动并运行自己的 MySQL 数据库实例。 #### 基础命令操作 涵盖了创建、删除数据库以及表格的基础 SQL 语句;解 SELECT, INSERT, UPDATE 和 DELETE 这些核心的操作指令。 #### 用户权限管理 深入探讨账户管理和权限分配机制,使管理员可以安全有效地控制不同用户的访问级别。 #### 表结构设计原则 讨论良好表结构的设计方法论,包括范式化理论的应用实践,以提高性能和维护效率。 #### 数据类型详解 详细介绍各种可用的数据类型及其适用场景,帮助开发者做出最优的选择来存储不同类型的信息。 #### 字符集和支持的语言特性 解析字符编码的重要性及常见字符集的区别,同时介绍多语言支持的功能实现方式。 #### 复杂查询技巧 传授构建复杂条件筛选、连接多个表进行联合查询的方法和技术要点,提升数据检索能力。 #### 存储引擎对比分析 对比 InnoDB 和 MyISAM 等主流存储引擎的特点差异,以便根据具体需求挑选合适的解决方案。 #### 事务处理概念 阐述 ACID 属性的意义,说明怎样通过 START TRANSACTION / COMMIT / ROLLBACK 来保证业务逻辑的一致性和可靠性。 #### 锁机制原理 描述行级锁 vs. 表级锁的工作模式,理解并发情况下可能遇到的问题及解决策略。 #### 性能调优指南 针对查询日志监控、索引优化等方面给出实用建议,学习 B+树这种高效的索引结构是如何工作的[^4]。 #### 备份恢复方案 教授定期备份计划制定流程,掌握全量备份加增量备份相结合的方式,了解灾难发生后的快速回复手段。 #### 日常运维经验分享 总结日常工作中积累下来的宝贵经验和最佳做法,如参数调整、版本升级注意事项等。 #### 高可用架构部署 探索主从复制、集群配置等内容,保障服务持续在线的同时还能应对高流量冲击。 #### JSON 文档支持功能 随着 NoSQL 的兴起,MySQL 对 JSON 类型的支持也日益增强,这部分会涉及相关特性的使用案例。 #### 插件扩展生态系统 展示丰富的插件生态体系,让用户可以根据实际应用场景灵活选用第三方组件或自行开发定制化的工具。 #### 新增特性前瞻 关注最新发布的 MySQL 版本带来的新变化和发展趋势,保持技术前沿意识。 ```sql -- 创建示例数据库 CREATE DATABASE example_db; USE example_db; -- 创建一张简单的用户信息表 CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50), email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 向表中插入一条记录 INSERT INTO users (username, email) VALUES ('test_user', 'test@example.com'); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值