python DrissionPage 爬取京东

设置本地谷歌路径

path = r'C:\Users\PC\AppData\Local\Google\Chrome\Application\chrome.exe'  # 请改为你电脑内Chrome可执行文件路径
ChromiumOptions().set_browser_path(path).save()

xpath定位元素

items = page.eles('xpath://li[@class="gl-item"]')
print(len(items))
for item in items:
    info_url = item('xpath://div[contains(@class,"p-name")]/a').link
    title = item('xpath://div[contains(@class,"p-name")]/a').text
    shop = item('xpath://a[@class="curr-shop hd-shopname"]').text

完整代码如下

from DrissionPage import WebPage ,ChromiumOptions
from DataRecorder import Recorder

path = r'C:\Users\PC\AppData\Local\Google\Chrome\Application\chrome.exe'  # 请改为你电脑内Chrome可执行文件路径
ChromiumOptions().set_browser_path(path).save()

def main():
    r = Recorder('data.xlsx')
    r.add_data(('url','标题','店铺名'))
    co = ChromiumOptions().use_system_user_path()

    page = WebPage(driver_or_options=co)
    page.timeout = 1
    page.set.retry_times(5) #连接失败时重连次数
    page.set.retry_interval(3) #连接失败时重连间隔
    page.set.NoneElement_value('')
    url = 'https://search.jd.com/Search?keyword=手机'
    print(url)
    page.get(url, show_errmsg=True)
    while True:
        page.scroll.to_bottom()
        page.wait(6)
        items = page.eles('xpath://li[@class="gl-item"]')
        print(len(items))
        for item in items:
            info_url = item('xpath://div[contains(@class,"p-name")]/a').link
            title = item('xpath://div[contains(@class,"p-name")]/a').text
            shop = item('xpath://a[@class="curr-shop hd-shopname"]').text

            print(info_url,title,shop)
            r.add_data((info_url,title,shop))

        btn = page('下一页', timeout=2)
        if btn:
            btn.click()
            page.wait.load_start()
        # 没有则退出程序
        else:
            break
    r.record()


if __name__ == '__main__':
    main()
  • 14
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值