DrissionPage采集京东商品信息

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

前言:

        东子的商品数据获取,方法还是有很多的,常规的爬虫采集的话,需要去解密他的列表页参数,其次的话就是自动化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 针对这块的操作即可完美复现京东商品数据全部采集!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值