快速入门drissionpage(网页数据采集)[实现京东数据的快速采集]

目录

安装drissionpage

案例入门

使用的基本逻辑

 在百度搜索 “Drissionpage”,并打印结果。

使用drissionpage采集京东数据

获取标签属性操作

京东实例代码参考


官方网址链接☀️ 基本概念 | DrissionPage官网

安装drissionpage

官方链接:🌏 导入 | DrissionPage官网

运行环境

操作系统:Windows、Linux 和 Mac

Python 版本:3.6 及以上

支持:Chromium 内核浏览器(如 Chrome 和 Edge)、electron 应用

安装

pip install DrissionPage

升级

pip install DrissionPage --upgrade

或者升级到指定版本

pip install DrissionPage==4.0.0b17

正常来说,第一个安装指令就足够了,后续两个指令看个人的使用场景。

案例入门

OK,直接来操作案例快速入门

使用的基本逻辑

操作浏览器的基本逻辑如下:

  1. 创建浏览器对象,用于启动或接管浏览器
  2. 获取一个 Tab 对象
  3. 使用 Tab 对象访问网址
  4. 使用 Tab 对象获取标签页内需要的元素对象
  5. 使用元素对象进行交互

 在百度搜索 “Drissionpage”,并打印结果。

# 导入
from DrissionPage import Chromium

# 连接浏览器
browser = Chromium()  
# 获取标签页对象
tab = browser.latest_tab  
# 访问网页
tab.get('https://www.baidu.com')  
# 获取文本框元素对象
ele = tab.ele('#kw')
# 向文本框元素对象输入文本
ele.input('DrissionPage')  
# 点击按钮,上两行的代码可以缩写成这样
tab('#su').click()  
# 获取所有<h3>元素
links = tab.eles('tag:h3')  
# 遍历并打印结果
for link in links:  
    print(link.text)

注:通过id绑定标签属性使用#,如果是class即使用.

ele1 = tab.ele('.tabe')

这个按键即绑定class='tabe'标签。

OK当使用完成后,你应该对这些基本元素有一些了解了,现在我们来实践去操作如何采集京东的数据。

使用drissionpage采集京东数据

在编写程序的时候,我需要你们学会一个简单操作,如何获取标签对象的id,class属性。

获取标签属性操作

可以找到键盘的F12按键,直接打开浏览器的开发者工具。

也可以通过鼠标右键网页

然后点击检查,进入开发者工具。

edge浏览器大概是这样的

chrome浏览器的

其实开发者工具都是一样。

现在来获取标签元素。

点击这个带有鼠标指针的按钮,点击后会变为蓝色。

然后点击相应的页面元素

开发者工具会快速定位到该组件,获取相应的标签属性就行了

OK,你现在就能写代码了,依据🛰️ 概述 | DrissionPage官网所提供的参考案例,基本能实现的七七八八的了。

京东实例代码参考

import time

import span
from DrissionPage import Chromium,WebPage,SessionPage,ChromiumPage, ChromiumOptions
import re

user_input = input("请输入要搜索的内容:")

browser = Chromium()
data = '华为'
tab = browser.latest_tab
tab.get('https://www.jd.com/')

ele1 =tab.ele("#key")
ele1.input(user_input)

tab(".button").click()

tab("._quick-search-trigger_jbcwn_12").click()

groups = tab.ele('._values-inner__hidden_jbcwn_88')

ele2 = groups.eles('._value-item_19o6w_23')

for i in ele2:
    if data in i.text:
        # data = i.text
        i.click()
        break

time.sleep(1)

ele3 = tab.ele('._common-button_1wphn_1 _common-button--primary_1wphn_20 _common-button--small_1wphn_13')
ele3.click()

grand = tab.ele('._goodsContainer_f6icl_1 plugin_goodsContainer')

title = [span.attr('title') for span in grand.eles('._text_1x4i2_30')]
price = grand.eles('._container_1tn4o_1')

price = [re.search(r'\d+', p.text).group() for p in price]



sale_elements = grand.eles('._goods_volume_container_1xkku_1')
sales = []
for element in sale_elements:
    sale_text_element = element.ele('._goods_volume_1xkku_1')
    raw = sale_text_element.text
    clean = re.sub(r'\d+%好评$', '', raw)
    sales.append(clean)

data = [
    {
        'title': title[i],
        'price': price[i],
        'sale': sales[i]
    } for i in range(len(title))
]
print(data)


browser.quit()

该代码只做一个参考使用,因为不同浏览器或者页面都是会做不定时的更新的,就会导致代码失效,或者查找不到元素的问题

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值