爬取京东商品详情页信息

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

#爬取京东商品详情页信息
#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))#爬取所需时间


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16775.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用Python爬虫爬取京东商品的简要信息

转自本人博客园博客:https://www.cnblogs.com/JYU-hsy/p/9673454.html 目录 一、前言 二、何为爬虫 三、JD商品详情页的网页分析 3.1详情页上指向的其他URL 3.2商品名称、价格 四、简单爬虫框架 1.爬虫总调度程序 2.URL管理器 3.HTML下载器 4.HTML解析器 5.输出…

智能车浅谈——抗干扰技术软件篇

文章目录 软件抗干扰技术数字信号的抗干扰措施数字输入信号软件抗干扰措施数字输出信号软件抗干扰措施数字滤波算术平均值滤波中值滤波滑动平均滤波归一化差比和 CPU及程序的抗干扰措施复位掉电保护Watchdog技术 总结智能车系列文章汇总 软件抗干扰技术 前面介绍了一些硬件抗干…

人工智能中RPA、NLP、OCR介绍

1、NLP 自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。主要研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机、于一体的。因此,这一领域的研究将涉及自然…

最新php在线扒站程序源码分享

介绍: 目前很火的在线扒站程序,免服务器,全站整体无shua新,很友好。 搭建说明: 上传到服务器/虚拟主机即可,无需数据库,仅占180k,ajax.php有能力的修改,index.html看到版…

凭什么国内造不出高端示波器?一起扒一扒示波器的发展史!

我是小麦,一名热爱电子技术的工程师 关注我,一起变得更加优秀! 示波器作为电测行业最基本的综合性仪器,设计和制造他所涉及的领域也十分广泛,从半导体到特种材料,从机加工到电子设计无所不涉及。这就需要强大完善的工业…

掌握这些,你也可以轻松扒谱(下)

如果你只想要扒取歌曲的演唱旋律,那只需要看《掌握这些,你也可以轻松扒谱(上)》这篇文章就可以啦~ 但是如果你需要扒取音乐的伴奏,那就需要观看下方的内容继续学习啦~ 1.练习听分解和弦 如果我们想扒取歌曲的伴奏旋律…

【计算机视觉】pycharm自制一个吉他扒谱软件(附源码)

【计算机视觉】pycharm自制一个吉他扒谱软件(附源码) 构思起源结果展示吉他音频和图片附件可以从我的git上下载源码 构思起源 作为一个深度吉他爱好者,拥有一个自制的扒谱软件真是梦寐以求的事情,以前扒谱还要手画六线谱&#xf…

在线扒站源码

介绍: 上传就可以用 网盘下载地址: http://kekewl.org/zT7gE9VEwUT 图片:

如果你不会扒谱,来吧,这款软件给你超能力

我大学时期同寝室的一个同学,弹得一手好吉他。最让我们佩服的事,可以把任意一首歌的歌谱扒出来!每年联欢会,我们选个歌,他就能很快把谱子扒出来,大家就可以拿着各种乐器开始准备表演节目。这个技能一直让我…

想要快速扒谱?快来掌握这些小技巧吧!

相信喜欢音乐的小伙伴们都遇见过这样的事情,有时候我们听到了一手非常好听的歌曲,自己也想要翻唱它,结果在网上找了半天,也没有找到这首歌曲的谱子,于是我们只能非常遗憾的错过了它。 这时候我们不妨来卷起袖子试试自己…

听音扒谱app_掌握这些,你也可以轻松扒谱(下)

如果你只想要扒取歌曲的演唱旋律,那只需要看《掌握这些,你也可以轻松扒谱(上)》这篇文章就可以啦~ 但是如果你需要扒取音乐的伴奏,那就需要观看下方的内容继续学习啦~ 图片来自EarMaster中文官网 1.练习听分解和弦 如果我们想扒取歌曲的伴奏旋…

AutoGPT 安装指南,使用避坑要点

最近, AIGC 中最火的可能就当属于 AutoGPT 了吧,首先简单介绍一下AutoGPT 背景 AutoGPT 是基于 ChatGPT API 接口开发,项目首推 GPT-4 模型,但 OpenAI 账号 API 只有 gpt-3.5-turo 权限同样也可以使用。 项目在 github 上获取的…

Langchain使用OpenAPI过程中报错openai.error.RateLimitError

Langchain使用OpenAPI过程中报错openai.error.RateLimitError 在使用agent跑demo时突然出现以下情况 最后抛出异常: openai.error.RateLimitError: You exceeded your current quota, please check your plan and billing details.通过查阅官方文档发现原因所在&…

【第二周】卷积神经网络

【第二周】卷积神经网络 学习专知课程《卷积神经网络》,主要内容包括: CNN的基本结构:卷积、池化、全连接典型的网络结构:AlexNet、VGG、GoogleNet、ResNet 1.代码练习 MNIST 数据集分类:构建简单的CNN对 mnist 数…

failed to load response

原因: 因为后端没有把跨域的相关信息写到Header,导致前端无法加载数据。 分析: 1、首先先查看项目中有没有配跨域相关的配置,然后发现有配。 2、这个应该是在执行controller的时候返回才会加上。 3、因为我们项目做了个拦截器…

前端请求failed to load response解决方案

情况是这样的,vue写的一个前端页面,写了一个上传图片的功能,在生产环境上是可以使用的,但在测试环境上不可用,所以开始找原因。 第一步 打开浏览器,查看网页代码,走到network页面开始抓包。 …

任务一 唐诗赏析软件

(1)TextView控件详解 在Android中,文本框使用TextView表示,作用是在界面上显示文本。TextView提供了大量的XML属性,通过这些属性值的设置可以控制其显示内容的外观。表2-1显示了TextView常见的XML属性说明。TextView的…

若依框架 项目运行报错问题

前端项目启动报错 Syntax Error: TypeError: eslint.CLIEngine is not a constructor stackoverflow上的解决方法 1)升级webstorm 到2019版本 2)降级eslint 到5 我选择 2) 代码如下 npm install --save-dev eslint5安装报错 1、npm audit fix 2、npm a…

大爆发还是大崩盘?亿万富翁Bankman-Fried解读NFT

iNFTnews.com消息,在接受CNBC采访时,加密衍生品交易所 FTX 的首席执行官 Sam Bankman-Fried 表示NFT几乎比他见过的任何东西都更快地成为主流。他还指出:“快速采用一种新趋势既让人兴奋,也存在风险。” “Visa刚刚宣布他们购买了…

AI工具究竟是帮手还是对手?

本文概要 近日育碧开发了人工智能工具 Ghostwriter,可以一键生成游戏NPC对话。不少游戏开发者担心AI写手工具的出现会让自己“饭碗”不保,但Swanson表示这个工具只是为了提供第一稿的 barks来减少对话生成工作的繁琐度。AI工具究竟是帮手还是对手&#x…