首页 > 编程语言 >python爬虫某东商品销售数据

python爬虫某东商品销售数据

时间:2022-11-19 23:00:13浏览次数:36  
标签:get python list 爬虫 某东 item comments page productID

经典四步曲:

1、查找有效URL,分析是静态数据还是动态数据,分析数据的格式。

2、编写python代码,向服务器发送请求,获取数据。

3、解析数据

4、保存数据

import requests
import json
import time
import openpyxl

# headers = {
# "User-Agent": "Mozilla/5.0(Windows NT 6.1;WOW64) AppleWebKit/537.36(KABUL, like Gecko) "
# "Chrome/86.0.4240.198Safari/537.36 "
# }
# url = 'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=10054692622823&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1'
# resp = requests.get(url=url, headers=headers)
# print(resp.text)

def get_comments(productID, page):
headers = {
"User-Agent": "Mozilla/5.0(Windows NT 6.1;WOW64) AppleWebKit/537.36(KABUL, like Gecko) "
"Chrome/86.0.4240.198Safari/537.36 "
}
url = 'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId={0}&score=0&sortType=5&page={1}&pageSize=10&isShadowSku=0&fold=1'.format(productID,page)
resp = requests.get(url=url, headers=headers)
# print(resp.text)
s = resp.text.replace('fetchJSON_comment98(', '')
s = s.replace(');', '')
# #将str类型的数据转换成json格式的数据
json_data = json.loads(s)
return json_data

# 获取最大页数
def get_max_page(productID):
dic_data = get_comments(productID, 0)
return dic_data['maxPage']

def get_info(productID):
# 获取最大页数
# max_page = get_max_page(productID)
max_page = 10
list = []
for page in range(1, max_page+1):
comments = get_comments(productID, page)
comm_list = comments['comments']# 根据KEY,获取value
for item in comm_list:
connect = item['content']
color = item['productColor']
size = item['productSize']
score = item['score']
list.append([connect,color,size])
time.sleep(3)
save(list)

def save(list):
wk = openpyxl.Workbook()#创建工作薄对象
sheet = wk.active#获取活动页面
for item in list:#遍历列表
sheet.append(item)
wk.save('商品销售数据.xlsx')#保存在磁盘上

if __name__ == '__main__':
productID = '10025732446506'
# print(get_max_page(productID))
get_info(productID)

备注:避免反爬,只取了前10页数据。后续篇章将分享分析数据(含饼图)






标签:get,python,list,爬虫,某东,item,comments,page,productID
From: https://blog.51cto.com/u_14012524/5870815

相关文章

  • python中的函数(1)
     #1.函数#函数就是将一段具有独特功能的代码段整合到一个整体并命名#在需要的位置调用这个名称即可完成对应的需求#函数的作用:封装代码(方便管理),实现代码重用......
  • Python程序员:代码写的好,丝滑的壁纸少不了
    不知道大家的电脑桌面一般用的什么类型的壁纸?早上来上班,打开电脑,被漂亮的桌面壁纸所吸引,年底将近,这又是哪个地方的节日?才晓得,原来这是泰国第二大城市清迈的“天......
  • python ddddocr图片验证码详解
     下载地址:https://pypi.tuna.tsinghua.edu.cn/simple/ddddocr/安装命令:pipinstallD:\ChromeCoreDownloads\ddddocr-1.3.0-py3-none-any.whl-ihttps://pypi.tuna.ts......
  • python获取IP代理
    解决爬虫最快的方法就是用代理,不多说,直接上代码:importrequestsimportparselimportjsondefgetHTMLText(url):try:headers={"User-Agent":"Mo......
  • python3-基础篇-10-字符串
      字符串操作在​​python3-基础篇-04-字符串格式化输出(%、format())​​中已经提到了一些,在本章中将列举字符串的其它操作。1.字符串重复输出‘值’*num   (num为重复......
  • python(牛客)试题解析2 - 中等
    导航一、NC192二叉树的后序遍历二、NC117 合并二叉树三、求长度最长的的连续子序列使他们的和等于sum四、按顺序取出固定长度内容并合并两个数组为一个新数组五、输......
  • python 安装Basemap 以及cannot import name ‘dedent’ from ‘matplotlib.cbook’问
    我用的是anaconda管理工具,运行安装condainstallbasemap或者直接在anaconda,navigator中搜索basemap,进行安装  问题:cannotimportname‘dedent’from‘matplot......
  • Python 基础之wmi模块(windows监控)
    背景:最近学习Python监控系统状态的Psutil模块时。看到很多函数都是针对某些系统(如Linux、FreeBSD )的时就在想,既然有那么多监听系统状态的函数没有兼容win系统那......
  • python网页爬虫开局通用示例
    万事开头难,好的开始是成功的一半。步骤:1、导入requests模块,2、get方法(url,timeout,headers等)3、状态判断,4、考虑编码,5、try方法判断异常。importrequests#importtimedef......
  • python-迭代器
     迭代的概念使用for循环遍历取值的过程叫做迭代,比如:使用for循环遍历列表获取值的过程#Python中的迭代forvaluein[2,3,4]:print(value)复制代码1.2......