之前写过爬取京东商品导航信息,现在献上爬取京东商品详情页信息。

#爬取京东商品详情页信息
#2017/7/30import requests
from bs4 import BeautifulSoup
import os
import csv
import re
import json
import time#爬取页面链接
def make_a_link(keyword,page):try:r = requests.get("https://search.jd.com/Search?keyword=" + keyword +'&enc=utf-8&page=' + str(2*page-1))r.raise_for_statusprint('正在爬取第{}页...'.format(page))print('---'*45)r.encoding = 'gbk'return r.textexcept:print('链接错误!!!')return ''#爬取页面链接
def find_only_link(html):soup = BeautifulSoup(html,'lxml')links = soup.find_all('div',class_='gl-i-wrap')return (link.find('div',class_='p-name p-name-type-2').a['href'] for link in links)#页面链接的生成表达式#链接单页面
def link_to_url(link):try:r = requests.get(link)r.raise_for_statusr.encoding = 'gbk'return r.textexcept:print('此页无法链接!!!')return ''#爬取商品价格
def getprice(purl):uid = re.match(r'.+?(\d+).+',purl).group(1)content = link_to_url('https://p.3.cn/prices/mgets?skuIds=J_' + uid)jd = json.loads(content.lstrip('[').rstrip(']\n'))#生成json数据格式return jd['p']#爬取商品评论
def getcomment(purl):uid = re.match(r'.+?(\d+).+',purl).group(1)content = link_to_url('https://club.jd.com/comment/productCommentSummaries.action?referenceIds=' + uid)jd = json.loads(content)comment = []jds = jd['CommentsCount'][0]comment.append(jds['CommentCountStr'])#评论数comment.append(jds['GoodCountStr'])#好评数comment.append(jds['GoodRate'])#好评率return comment#爬取商品名称
def getname(purl):uid = re.match(r'.+?(\d+).+',purl).group(1)content = link_to_url('https://c.3.cn/recommend?&methods=accessories&sku=' + uid + '&cat=9987%2C653%2C655')try:jd = json.loads(content)return jd['accessories']['data']['wName']except:return ''#爬取卖家
def getseller(purl):uid = re.match(r'.+?(\d+).+',purl).group(1)content = link_to_url('https://chat1.jd.com/api/checkChat?pid=' + uid + '&returnCharset=utf-8')try:jd = json.loads(content.lstrip('null(').rstrip(');'))try:return jd['seller']except:return ''except:''#保存到csv
def save_to_csv(ulist,keyword):path = 'D:/数据/'if not os.path.exists(path):os.mkdir(path)with open(path + '京东' + keyword + '数据.csv','w+' ) as f:writer = csv.writer(f)writer.writerow(['商品','价格','店铺','链接','评论数','好评数','好评率'])for i in range(len(ulist)):if ulist[i] and ulist[i][0]:writer.writerow([ulist[i][0],ulist[i][1],ulist[i][2],ulist[i][3],ulist[i][4],ulist[i][5],ulist[i][6]])#主函数
def relmain(keyword):#高阶函数def main(page):r = re.compile(r'.*?html')ulist = []for p in range(page):p += 1text = make_a_link(keyword,p)for url in find_only_link(text):ul = []if r.match(url):if getname(url):ul.append(getname(url))#商品名称print(getname(url))ul.append(getprice(url))#价格ul.append(getseller(url))#店铺ul.append('https:' + url)#链接print('https:' + url)ul.extend(getcomment(url))#评论print('*-*' * 45)ulist.append(ul)save_to_csv(ulist,keyword)return mainif __name__ == '__main__':keyword = input('输入要爬取的商品:')pages = int(input('输入要爬取的页数:'))time_start = time.time()relmain(keyword)(pages)print('耗时{}秒。'.format(time.time() - time_start))#爬取所需时间

爬取京东商品详情页信息相关推荐

  1. Pyppeteer+Python爬取京东商品详情demo

    前言:近期总有刚接触Pyppeteer的同学提问,今日得闲索性写个demo,供大家参考. 安装Pyppeteer环节省略,自行查阅相关文档. 下述代码业务场景:用户输入关键字,脚本采集并存储与该关键字 ...

  2. Day06,selenium的剩余用法、万能登录破解和爬取京东商品信息,及破解极验滑动验证码...

    一.自动登录抽屉新热榜 from selenium import webdriver import timedriver = webdriver.Chrome(r'D:\BaiduNetdiskDow ...

  3. python爬虫爬取京东商品评价_python爬取京东商品信息及评论

    ''' 爬取京东商品信息: 功能: 通过chromeDrive进行模拟访问需要爬取的京东商品详情页(https://item.jd.com/100003196609.html)并且程序支持多个页面爬取 ...

  4. python爬虫爬商品库存_python爬虫实践——爬取京东商品信息

    1 ''' 2 爬取京东商品信息:3 请求url:4 https://www.jd.com/5 提取商品信息:6 1.商品详情页7 2.商品名称8 3.商品价格9 4.评价人数10 5.商品商家11 ...

  5. go爬虫和python爬虫哪个好_python 爬虫实战项目--爬取京东商品信息(价格、优惠、排名、好评率等)-Go语言中文社区...

    利用splash爬取京东商品信息 一.环境 window7 python3.5 pycharm scrapy scrapy-splash MySQL 二.简介 为了体验scrapy-splash 的动 ...

  6. layui获取input信息_python爬虫—用selenium爬取京东商品信息

    python爬虫--用selenium爬取京东商品信息 1.先附上效果图(我偷懒只爬了4页) 2.京东的网址https://www.jd.com/ 3.我这里是不加载图片,加快爬取速度,也可以用Hea ...

  7. python爬取京东商品信息代码_爬取京东商品信息

    利用 BeautifulSoup + Requests 爬取京东商品信息并保存在Excel中 一.查看网页信息 打开京东商城,随便输入个商品,就选固态硬盘吧 先看看 URL 的规律,可以看到我们输入的 ...

  8. python+正则表达式爬取京东商品数据信息

    爬取数据的方式有很多种,正则表达式,scrapy,从接口中爬取动态网页的数据-今天我们讲的是用正则表达式来爬取京东一个大米商品的具体信息. 正则表达式的优点:可以精准的爬取我们想要的数据信息 缺点:爬 ...

  9. python翻页爬取京东商品评价

    python翻页爬取京东商品评价 以小米手机评论为案例 1.找到目标的url 2.检查响应结果 3.解析json数据,发现相应数据无法成功解析 注意:json数据一般都是以大括号或中括号开头或者结尾的 ...

最新文章

  1. 软件架构是软件的组织形式
  2. 通过jquery获取td下的input标签的值,并且改变onclick的参数值
  3. 数据库连接池的工作原理
  4. 极客马拉松JUNCTION✖️TIANJIN
  5. golang 热插拨 插件_从零开始实现一个插件化框架(一)
  6. QPW 邀请日志表(tf_invite_log)
  7. 蓝桥集训之位运算和相关函数
  8. 【Python】包管理工具pip
  9. 网卡bonding配置
  10. 一篇文章教你用matlab求定积分广义/变限积分
  11. 质检动真格,你的本科毕业论文该怎么做?
  12. 数据挖掘项目——金融反欺诈
  13. 读赵凯华之《新概念物理教程.量子物理》
  14. 计算机从外部世界接收信息和向外部世界反馈运算结果的手段
  15. line 1 appears to contain embedded nulls
  16. android icon背景透明,Android 图标去白色背景换成透明 用Photoshop实现
  17. Uniswap v3 详解(五):Oracle 预言机
  18. 【高等数学】伽马函数与斯特林公式
  19. Date 类 getTime() 方法
  20. 6.信息论(一):信息量、熵和最优编码

热门文章

  1. java post流_java中的post是什么意思
  2. 分布式存储之 Glusterfs
  3. 鸿蒙智能家居市场,荣耀智慧屏杀入彩电市场 重在智能家居 不把红海做成血海...
  4. Quant Practise
  5. Python对齐显示||tabulate函数||wcwidth模块||知道这些就够了
  6. 关于浙江22年下半年教师资格证面试报名注册时间
  7. 计算机辅助设计高级绘图员技能鉴定试题,计算机辅助设计高级绘图员技能鉴定试卷.doc...
  8. NTC 100k的温感度采集。
  9. STP生成树原理及选举规则举例
  10. Topaz Gigapixel AI 4.1.2 特别版 Mac 图片无损放大软件