python爬取京东评论_Python如何爬取京东的评价信息

Python如何爬取京东的评价信息

模块:requests,BeautifulSoup

import re

import time

import csv

import requests

from bs4 import BeautifulSoup

def write_a_row_in_csv(data, csv_doc):

"save good information into a row in csv document"

with open(csv_doc, 'a', newline='') as f:

writer = csv.writer(f)

writer.writerow(data)

# add headers, download page, check status code, return page

url = 'https://search.jd.com/Search?keyword=%E5%8D%8E%E4%B8%BAp20&enc=utf-8&suggest=1.def.0.V13&wq=%E5%8D%8E%E4%B8%BA&pvid=f47b5d05bba84d9dbfabf983575a6875'

headers = {

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"

}

response = requests.get(url, headers=headers)

print(response.status_code)

# save as html document

with open('html.html', 'w', encoding='utf8') as f:

f.write(response.text)

# save as csv document

with open('phone.csv', 'w', newline='') as f:

writer = csv.writer(f)

fields = ('id', '名称', '价格', '评价人数', '好评率')

writer.writerow(fields)

# find elements, such as name, item, price, comment, goodrate, comment count

soup_all = BeautifulSoup(response.content, 'lxml')

sp_all_items = soup_all.find_all('li', attrs={'class': 'gl-item'})

for soup in sp_all_items[:3]:

print('-' * 50)

name = soup.find('div', attrs={'class': 'p-name p-name-type-2'}).find('em').text

print('name: ', name)

item = soup.find('div', attrs={'class': 'p-name p-name-type-2'}).find('a')

print('item: ', item['href'], re.search(r'(\d+)', item['href']).group())

price = soup.find_all('div', attrs={'class': 'p-price'})

print('price:', price[0].i.string)

comment = soup.find_all('div', attrs={'class': 'p-commit'})

print('comment url:', comment[0].find('a').attrs['href'])

time.sleep(0.2)

# need add referer into headers

item_id = re.search(r'(\d+)', item['href']).group()

url = f'https://sclub.jd.com/comment/productPageComments.action?productId={item_id}&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1'

headers = {

"referer": f"https://item.jd.com/{item_id}.html",

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"

}

response = requests.get(url, headers=headers)

with open('html.json', 'w', encoding='utf8') as f:

f.write(response.text)

data = response.json()

comment_count = data['productCommentSummary']['commentCount']

print('评价人数:', comment_count)

good_rate = data['productCommentSummary']['goodRate']

print('好评率:', good_rate)

# record data into CSV sheet

write_a_row_in_csv(('id'+item_id, name, price[0].i.string, comment_count, good_rate), 'phone.csv')

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

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

相关文章

王思聪吃热狗的c语言小程序,王思聪吃热狗火了,开发各种恶搞小程序!王校长:我不要面子的啊...

原标题:王思聪吃热狗火了,开发各种恶搞小程序!王校长:我不要面子的啊近日王校长上了不少次热搜,其中有一条就是王校长吃热狗火了,接下来就出现了各种各样的表情包,手机壳,素描等等。…

python有什么内容_python能做什么

python能做什么?书声琅琅Python培训老师介绍,最近许多的朋友咨询,听说python很火,甚至可以超越JAVA,因此很想学这个python,但是不知道python能做什么,能完成一些什么项目呢?针对这个问题,今天…

酷狗音乐linux版_让父母也爱上音乐 酷狗音乐大字版成中老年人新宠

当智能手机成为人们日常生活中必不可少的一部分,手机早已从单纯的通话设备变成了功能强大的“百宝箱”,听音乐、看视频、拍照上网早已不是什么新鲜事。然而在我们玩手机玩的不亦乐乎时,你有没有关注过爸妈对使用智能手机的接受度?…

二分法求近似根c语言程序,求一C++风格程序,用二分法求f(x)=0的根

满意答案vwamuoor8000推荐于 2018.04.24#include #include typedef double (*F)(double);/* brief 二分法求解函数* param[in] f 求解的函数* param[in] a, b 求解的区间端点* param[in] 吵盯e 精度* pre f(a)*f(b)<0且f在该闭区间上连续* return 方程液枝的解 */double sol…

react的导出是怎么实现的_从零开始开发一个 React

这个是从零开始开发一个 React 系列的第七篇。想要访问之前的内容可以点击下方的链接进行访问&#xff1a;最简单的实现&#xff0c;包括 vdom 结构&#xff0c;createElement&#xff0c;ReactDOM.render增加 Class 的支持增加 JSX 的支持增加 state 支持增加声明周期增加 dom…

python io操作有什么_Python笔记:文件IO操作

读取文件 使用open()打开文件&#xff0c;文件不存在会抛出IOError错误。 try: f open(/path/to/file, r) print(f.read()) finally: if f: f.close() 文件读取完成一定要close()&#xff0c;为了保证在报错的时候也能close()&#xff0c;这里用了finally语句&#xff0c;更简…

c语言编程被当作病毒,为什么这个微不足道的C程序被检测为病毒?

我有点生锈在C,但我遇到了这个奇怪的问题&#xff1a;我写了这个程序&#xff1a;#include main(){int n;n1;while (n>0){puts("Write a number: ");scanf(" %d",&n);printf("This is the number you wrote: %d\n", n);}}显然绝对没有语法…

太极发送卡片软件_QQ卡片式消息一键发送app

QQ卡片式消息一键发送app这是一款能够帮助你有创意的发送广告的app。属于qq的辅助工具&#xff0c;能够让你发送属于自己的卡片信息。如果你想要给自己打广告或者发送某张图片&#xff0c;或者想要显示应用&#xff0c;就可以使用这款软件&#xff0c;它能够帮你迅速地生成卡片…

c语言中字符串 x,使用c语言解析字符串176x144中的数字

在做jpeg codec的时候&#xff0c;经常需要输入图片的大小&#xff0c;即长和宽。对于一个jpeg图片&#xff0c;它的大小几乎是任意的&#xff0c;所以只能用数字来表示&#xff0c;而不能选择cif&#xff0c;qcif等这类固定的图片格式。在用数字表示图片大小时&#xff0c;大家…

python列表生成式内必须定义匿名函数_Python基础-----基础概念总结

Python基础-----基础概念总结 Python程序的构成 构成图行连接符&#xff1a;\对象基本构成和内存示意图对象及其引用&#xff08;变量&#xff09;标识符 基本用法命名规则变量和简单的赋值语句 变量声明必须初始化删除变量和垃圾回收机制链式复制系列解包赋值常量&#xff08;…

英语四级c语言,2017年大学英语四级精选试题练习

2017年大学英语四级精选试题练习勤奋和智慧是双胞胎&#xff0c;懒惰和愚蠢是亲兄弟。以下是小编为大家搜索整理的2017年大学英语四级精选试题练习&#xff0c;希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!1、Courses with the numbers 800 or above are…

如何获取图像的驱动_Adobe Camera Raw 12 Mac(Raw格式图像ps插件) v12.2.1.417

Adobe Camera Raw 12 Mac版可以让摄影师在熟悉的Photoshop界面内打开并编辑这些RAW文件&#xff0c;极大的方便了摄影师的工作。Adobe Camera Raw 12 for Mac安装教程下载完成后&#xff0c;双击CameraRaw_12_2_1.pkg文件打开&#xff0c;根据安装器提示进行安装即可。安装完成…

centos usb转网口_CentOS5.6系统中安装并使用USB无线网卡(配置成功) 转

最近一直在配置linux服务器&#xff0c;因为家里装修的时候没有在墙面预留网络接口&#xff0c;所以我的台式机也使用无线网卡连接网络。在CentOS6.2下安装无线网卡的方法和CentOS5.6的方法是一样的&#xff0c;只是CentOS6.2下安装后&#xff0c;右上角会自动出现NetworkManag…

c语言中执行一次的函数once,iOS只执行一次的方法

IOS开发(64)之GCD任务最多只执行一次1 前言使用 dispatch_once 函数 在 APP 的生命周期内来保证你想确保每段代码只执行一次,即使它在代码的不同地方多次调用(比如单例的初始化)。2 代码实例ZYAppDelegate.m[plain]/一个用于调度一次函数的标识static dispatch_once_t onceToke…

python条件语句练习题_python学习-7 条件语句 while循环 + 练习题

1.死循环while 1 1:print(ok)结果是一直循环2.循环count 0while count < 10:print(count)count count 1print(error)3.练习题~ 使用while循环输出1 2 3 4 5 6 8 9 10count 1while count < 10 : # 或者count < 11if count 7:print( ) # 也可以添加pass&#xff…

c语言error ld returned,[Error] ld returned 1的错误

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include #include #include #include#define MAX 101#define N 1000#define M 250000/*函数功能&#xff1a;利用字符串实现超长数加减法运算 */void jianfa(int a[],int b[],int f);int lena,lenb,da1,db1; /* 把lena,l…

微信支持环信_环信客户互动云v5.39已发布:支持微信小程序接入

环信客户互动云v5.39_产品更新说明发布日期&#xff1a;2018-11-06客服模式质检中新增会话ID字段质检中新增会话ID字段&#xff0c;与历史会话中的会话ID对应&#xff0c;支持根据会话ID搜索质检会话&#xff0c;以及在质检详情中查看会话ID。便于质检员发现有问题的会话时&…

Android多线程优劣,Android 开发中用到的几个多线程解析

在开发工程中线程可以帮助我们提高运行速度&#xff0c;Android开发中我知道的线程有四个一个是老生长谈的Thread&#xff0c;第二个是asyncTask,第三个&#xff1a;TimetTask,第四个是Looper,四个多线程各有个的有点&#xff0c;Thread的运行速度是最快的&#xff0c;AsyncTas…

qc成果报告范例_QC推进这样做才是货真价值!| 看机电股份的QC报告

​❖QC小组活动是激发全体员工聪明才智、改善现场管理、提升企业综合竞争力的有效方法&#xff01;QC学习是QC活动推行的基础&#xff0c;高层参与则是QC活动推行的保障。-为进一步提升企业高层对QC的认识及重视&#xff0c; 5月20日下午&#xff0c;机电股份开展QC活动阶段汇报…

android白色字体代码,Android实现状态栏白底黑字效果示例代码

前言本文主要给大家介绍了关于Android如何实现状态栏白底黑字的相关内容&#xff0c;分享出来供大家参考学习&#xff0c;下面话不多说了&#xff0c;来一起看看详细的介绍吧。一、描述在项目中有的时候Ui设计状态栏背景颜色是白色的&#xff0c;虽然还挺好看&#xff0c;不过可…