分享好友 最新动态首页 最新动态分类 切换频道
Appium+mitmdump 爬取京东商品,看完不会的来打我
2024-12-25 18:19

print(id, name, images)

这里声明了接口的部分链接内容,然后与请求的 URL 作比较。如果该链接出现在当前的 URL 中,那就证明当前的响应就是商品详情的响应,然后提取对应的 JSON 信息即可。在这里我们将商品的 ID、名称和图片提取出来,这就是一条商品数据。

再提取评论的数据,代码实现如下所示

url = ‘api.m.jd.com/client.action’

if url in flow.request.url:

pattern = re.compile(‘sku".*?“(d+)”’)

body = unquote(flow.request.text)

id = re.search(pattern, body).group(1) if re.search(pattern, body) else None

text = flow.response.text

data = json.loads(text)

comments = data.get(‘commentInfoList’) or []

for comment in comments:

if comment.get(‘commentInfo’) and comment.get(‘commentInfo’).get(‘commentData’):

info = comment.get(‘commentInfo’)

text = info.get(‘commentData’)

date = info.get(‘commentDate’)

nickname = info.get(‘userNickName’)

pictures = info.get(‘pictureInfoList’)

print(id, nickname, text, date, pictures)

这里指定了接口的部分链接内容,以判断当前请求的 URL 是不是获取评论的 URL。如果满足条件,那么就提取商品的 ID 和评论信息。

商品的 ID 实际上隐藏在请求中,我们需要提取请求的表单内容来提取商品的 ID,这里直接用了正则表达式。

商品的评论信息在响应中,我们像刚才一样提取了响应的内容,然后对 JSON 进行解析,最后提取出商品评论人的昵称、评论正文、评论日期和图片信息。这些信息和商品的 ID 组合起来,形成一条评论数据。

最后用 MongoDB 将两部分数据分开保存到两个 Collection,在此不再赘述。

运行此脚本,命令如下所示

mitmdump -s script.py

手机的代理设置到 mitmdump 上。我们在京东 App 中打开某个商品,下拉商品评论部分,即可看到控制台输出两部分的抓取结果,结果成功保存到 MongoDB 数据库,如图所示。

如果我们手动操作京东 App 就可以做到京东商品评论的抓取了,下一步要做的就是实现自动滚动刷新。

Appium 自动化


将 Appium 对接到手机上,用 Appium 驱动 App 完成一系列动作。进入 App 后,我们需要做的操作有点击搜索框、输入搜索的商品名称、点击进入商品详情、进入评论页面、自动滚动刷新,基本的操作逻辑和爬取微信朋友圈的相同。

京东 App 的 Desired Capabilities 配置如下所示

{

‘platformName’: ‘Android’,

‘deviceName’: ‘MI_NOTE_Pro’,

‘appPackage’: ‘com.jingdong.app.mall’,

‘appActivity’: ‘main.MainActivity’

}

首先用 Appium 内置的驱动打开京东 App,如图所示。

这里进行一系动作操作并录制下来,找到各个页面的组件的 ID 并做好记录,最后再改写成完整的代码。参考代码实现如下所示

from appium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from time import sleep

class Action():

def init(self):

self.desired_caps = {

‘platformName’: PLATFORM,

‘deviceName’: DEVICE_NAME,

‘appPackage’: ‘com.jingdong.app.mall’,

‘appActivity’: ‘main.MainActivity’

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的

① 2000多本Python电子书(主流和经典的书籍应该都有了

② Python标准库资料(最全中文版

③ 项目源码(四五十个有趣且经典的练手项目及源码

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习

⑤ Python学习路线图(告别不入流的学习

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的

① 2000多本Python电子书(主流和经典的书籍应该都有了

② Python标准库资料(最全中文版

③ 项目源码(四五十个有趣且经典的练手项目及源码

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习

最新文章
ai矩形网格工具怎么用? ai矩形网格的使用方法
ai中矩形网格工具经常使用,今天我们就来看看ai矩形网格工具的使用方法。1、打开AI,新建文档,在工具箱找到里矩形网格工具。2、拖动鼠标可以绘制一个矩形网格,按住shift键,拖动鼠标,可以绘制一个正方形网格。3、拖动鼠标画网格后不放开
360清理大师Win10版 v1.0.0.1001单文件版
360清理大师,轻量级的电脑清理加速产品,简约不简单。360清理大师-Windows10,借助于安全卫士积攒多年的清理和加速能力,仅提供电脑清理、电脑加速及软件卸载三个核心功能,仅适用于Windows® 10。1. 电脑清理——电脑减负瘦身的一剂良药
linux考试基础知识测验
Linux系统管理基础测试(100分钟)姓名:座位号:一.单项选择题:(每小题0.5分,共计30分) 1.    cron 后台常驻程序 (daemon) 用于:DA. 负责文件在网络中的共享 B.
80%的代码AI帮你写?还没这么夸张,不过也快了
兔年春节一过,进入到云服务版本的开发阶段,过年前发生了一件大事,Chatgpt横空出世,不少人预测Chatgpt会替代的10大行业,其中就有。 这时,一位特斯拉的老哥出来说,GitHub Copilot帮助他写
Ant Design 外链建设规划和执行方案
一、网站外链建设目标* 提升 Ant Design 官网在搜索引擎中的排名和可见度* 获取来自权威网站和相关行业资源的优质反向链接* 建立与目标受众相关的强大外链网络,从而增加网站流量和转化二、目标受众分析* UI/UX 设计师* 前端开发者* Web 设
Google发展设计_今日google的发展设计教程
摘要:Google发展设计,今日google的发展设计教程,新片场素材小编郝睿涛Google发展设计,今日google的发展设计教程相关内容整理,如果您对Google发展设计,今日google的发展设计教程感兴趣欢迎访问免费阅读。Google发展设计,今日google的发展
#全台連鎖日式豬排丼飯.台北(凱撒店)工讀PT.周周領薪.全家品牌集團.熱門餐飲NO1.可預支.穩定照課表排班SS
♥大戶屋♥【工作內容】★外場:帶客及客席服務、環境整理及清潔工作、收銀及飲料甜點製作★內場:餐點備製及調理、餐點品質確認、設備及廚房清潔維護※固定內外場服務【工作時間】☛ 10:00 – 22:00 (彈性排班)☛排班制 (依照各門市營運時
ChatGPT潮水涌来,360搜索游向何方?
今年初,智能对话机器人模型ChatGPT引发了全球范围的人工智能热潮。面对这波浪潮,国内的科技公司,尤其是搜索引擎领域的巨头们纷纷加入,相继发布自己的大模型。作为国内第二大搜索引擎厂商,360近期就官宣发布了360GPT产品矩阵“智脑”,
AI专家李文哲博士加入Marketingforce,共建AI Agent智能体新生态!
人工智能已经成为推动社会进步的关键力量,AIAgent也迎来了一轮大爆发。不仅是数据、算法和算力,新兴人才也是企业抢占AI赛道高地的核心资源。在这一发展背景下,AI领域杰出人才、资深专家李文哲博士正式加入我们的团队,担任联席CTO兼Mark
相关文章
推荐文章
发表评论
0评