爬取某宝数据
原创大约 1 分钟
除了Fiddler,Chrome浏览器自带的开发者工具也非常好用,一般情况下用它来抓包已经足够了。

这里使用一个新工具DrissionPage来抓取某宝的数据。
先通过Pip安装它。
> pip install DrissionPage
爬取某宝的代码如下。
'''
基于DrissionPage实现某宝的数据爬取
'''
from DrissionPage import ChromiumPage
from userinfo import *
import re
import json
# 打开浏览器
page = ChromiumPage()
# 监听响应网址
page.listen.start("h5/mtop.relationrecommend.wirelessrecommend.recommend/2.0/?jsv=2.7.4&appKey=12574478")
page.listen.start()
# 打开淘宝登录页面
# page.get('https://s.taobao.com/search?commend=all&ie=utf8&initiative_id=tbindexz_20170306&page=1&q=%E6%89%8B%E6%9C%BA&search_type=item&sourceId=tb.index&spm=a21bo.jianhua%2Fa.201856.d13&ssid=s5-e&tab=all')
# # 定位到账号密码输入框
# page.ele('css:#fm-login-id').input(USERNAME)
# page.ele('css:#fm-login-password').input(PASSWORD)
# page.ele('css:.fm-button.fm-submit.password-login').input(PASSWORD).click()
# page.wait.eles_loaded('css:#nc_1_n1z')
# ele = page.ele('css:#nc_1_n1z')
# if ele:
# ele.wait.clickable()
# page.actions.move_to(ele, duration=0.5).hold().move(200, random.uniform(-5, 5), duration=0.1).move(100,
# random.uniform(
# -5, 5),
# duration=0.5).release()
# 如果绕过滑块及人机验证麻烦,也可以直接人工登录后再搜索商品名称
# 进入首页
page.get('https://www.taobao.com/')
# 输入搜索内容
page.ele('css:#q').input('手机').click()
# 点击搜索按钮
page.ele('css:.btn-search.tb-bg').click()
# 自动翻页
for i in range(1, 101):
# 等待请求加载完毕,并拿到数据
resp = page.listen.wait().response
jsonp = resp.body
# 提取数据
mtopjsonp = re.findall('mtopjsonp\d+\((.*?)\)', jsonp)[0]
data = json.loads(mtopjsonp)
itemArray = data['data']['itemArray']
for item in itemArray:
print(item['title'] + "," + item['priceWap'])
# 翻页
page.ele('css:.next-btn.next-medium.next-btn-normal.next-pagination-item.next-next').click()
感谢支持
更多内容,请移步《超级个体》。