爬虫京东评论+可视化

article/2025/10/13 17:37:15

前期工作

选取一个网站,最好是教育网站,因为教育网站很少有反爬虫机制。
在网站内打开开发者工具,不同的浏览器开发者工具也不同,但都大同小异(这里使用的是谷歌)。
在开发者工具中确定你要爬虫的部分,找到我们爬取数据所需要的URL。同时,你也可以找到你访问这个网站时的请求,可以使用自己的请求头。
前期工作有很多,但也简单,这里就不多赘述了。

导入我们开发需要的模块

安装模块方法

pip install + 模块名字
import requests
import re
from lxml import etree
import json
import random

多个请求

定义多个请求头,爬虫时随机选取一个(防止请求头被屏蔽导致爬虫失败)
这里的多个请求来自于
问题解决:如何获取京东页面请求到的json中的商品数据(爬虫请求json,提取数据)

#反爬虫
def get(url):proxy_list = [{"http" or "https": "112.115.57.20:3128"},{"http" or "https": '121.41.171.223:3128'},]user_agent = ["Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0","Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1","Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1","Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11","Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)","Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5","Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5","Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5","Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) Presto/2.8.149 Version/11.10","Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13","Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.337 Mobile Safari/534.1+","Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.0; U; en-US) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/233.70 Safari/534.6 TouchPad/1.0","Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124","Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan)","UCWEB7.0.2.37/28/999","NOKIA5700/ UCWEB7.0.2.37/28/999","Openwave/ UCWEB7.0.2.37/28/999","Mozilla/4.0 (compatible; MSIE 6.0; ) Opera/UCWEB7.0.2.37/28/999",]

储存

正则表达式筛选出评论部分

t = re.findall(r'\"content\"\:\".*?\"', xbatext)

稍做切片,存入text文件中

for i in range(len(t)):title = eval(t[i].split(':')[1])file=open("conn.txt", 'a', encoding='utf-8')file.write(title)

爬虫部分完整代码

import requests
import re
from lxml import etree
import json
import random#反爬虫
def get(url):proxy_list = [{"http" or "https": "112.115.57.20:3128"},{"http" or "https": '121.41.171.223:3128'},]user_agent = ["Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0","Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1","Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1","Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11","Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)","Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5","Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5","Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5","Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) Presto/2.8.149 Version/11.10","Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13","Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.337 Mobile Safari/534.1+","Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.0; U; en-US) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/233.70 Safari/534.6 TouchPad/1.0","Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124","Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan)","UCWEB7.0.2.37/28/999","NOKIA5700/ UCWEB7.0.2.37/28/999","Openwave/ UCWEB7.0.2.37/28/999","Mozilla/4.0 (compatible; MSIE 6.0; ) Opera/UCWEB7.0.2.37/28/999",]header = {'User-Agent': random.choice(user_agent)}xba = requests.get(url, headers=header, proxies=random.choice(proxy_list))if xba.status_code == 200:#print(xba.text)return xba.textreturn None
def main():for i in range(1,10):url = 'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100014047052&score=0&sortType=5&page='finalurl = url+str(i)+'&pageSize=10&isShadowSku=0&fold=1'xbatext = get(finalurl)t = re.findall(r'\"content\"\:\".*?\"', xbatext)#print(t)print("第"+str(i)+"页爬取成功")for i in range(len(t)):title = eval(t[i].split(':')[1])#print(title)file=open("conn.txt", 'a', encoding='utf-8')file.write(title)print('finished')
main()

词云可视化

将图片放进本地中,即可运行词云部分。
在这里插入图片描述

#词云
from wordcloud import WordCloud
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import jieba# 打开文本
text = open('conn.txt',encoding='utf-8').read()# 中文分词
text = ' '.join(jieba.cut(text))
print(text[:100])
st = set(['非常','的','了','很','也','是','还是','都','我','就是','有','可以','用','之前','就','一点','不','起来','但是','没有','这','在','和','已经','office','好'])
# 生成对象
mask = np.array(Image.open("win.jpg"))
wc = WordCloud(mask=mask,font_path=r'C:\Windows\Fonts\simhei.ttf',max_font_size=250,width=1300,height=800,background_color='white',stopwords=st).generate(text)# 显示词云
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()# 保存到文件
wc.to_file('wordcloud2.png')

这是非常基础的爬虫,并没有多高级。作者能力有限,只能做到这个地步。爬虫还有好多部分没有做出,如数据清理,作者没有导入中文停用词文档,只是自己定义了几个停用词使用。作者也没有对评论进行其他筛选。

st = set(['非常','的','了','很','也','是','还是','都','我','就是','有','可以','用','之前','就','一点','不','起来','但是','没有','这','在','和','已经','office','好'])

可视化也只使用了词云,类似于直方图,折线图等等都没有。
总之,能力有限,如有错漏,请见谅!


http://chatgpt.dhexx.cn/article/6TQJxoIL.shtml

相关文章

京东手机评论的爬取

开篇 做论文的时候,最多接触的就是标准的数据集,几乎不需要太多的结构化处理,下载下来就是可以直接加载使用的数据,课题是有关评论分析的,但是论文针对的都是英文数据,而国内电商平台其实积累了大量的评论…

京东也做社交电商了

不知道大家有没有注意到,这两天朋友圈好像被京东商品给刷屏了, 身边不少大佬朋友都通过【芬香】在朋友圈带货。 我作为一个IT技术男,对于新出现的事物,自然也去研究了一番。下面就把我了解的信息分享给大家。 1、什么是「芬香」&a…

主存与内存

计算器内存条采用的是DRAM(动态随机存储器),即计算机的主存。我们通常所说的内存容量即指内存条DRAM的大小。 但是,严格地说,内存是包括主存与高速缓存(Cache,基于SRAM)的。可能是由于Cache相较内存条容量很小,毕竟内…

CPU/内存分析

一、概念理解 程序运作原理:一个请求发送到服务器,首先经过网卡,然后通知cpu有待处理任务,CPU去运行操作系统指令,根据请求的端口号,找到对应的应用程序代码,安排线程去处理;由于程…

linux服务器查看cpu和内存

一、服务器CPU情况 1 查看物理CPU个数 cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 2 查看服务器CPU内核个数 cat /proc/cpuinfo | grep "cpu cores" | uniq 3 查看虚拟机查看核数 grep processor /proc/cpuinfo|wc -l 4 查看cpu内核频…

计算机中CPU是如何与内存交互的

这篇文章主要整理了一下计算机中的内存结构,以及 CPU 是如何读写内存中的数据的,如何维护 CPU 缓存中的数据一致性。什么是虚拟内存,以及它存在的必要性。如有不对请多多指教。 概述 目前在计算机中,主要有两大存储器 SRAM 和 D…

CPU访问内存

首先我们需要一个引子,引子如下: 作为一个计算机领域的工程师,这里有一个问题:有一个10米深的水池需要测量其水深,并在计算机(或者微机)上显示测量结果,保留小数点后一位。请概要的设…

计算机cpu、寄存器、内存区别

1、寄存器是中央处理器内的组成部分。它跟CPU有关。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的…

CPU、内存、磁盘性能监控

CPU监控 网络由设备、服务器、路由器、交换机和其他网络组件组成。CPU 是网络中所有硬件设备的组成部分。它负责设备的稳定性和性能。企业严重依赖网络,企业硬件的处理能力决定了网络的容量。随着 CPU 功能和硬件的快速发展,组织必须规划其容量并监控其…

内存、CPU、硬盘

目录 内存虚拟内存 硬盘扩充内存和硬盘CPUCPU 频率CPU 高速缓存CPU三级缓存缓存行 CPU-内存的工作原理 内存 内存是外存与CPU进⾏沟通的桥梁,计算机中所有程序的运⾏都在内存中进行。 内存(Memory)也称内存储器和主存储器,它用于暂时存放CPU中的运算数据…

内存、CPU、显存、GPU

底盘中经常会出现资源、算力等词语,对于里面的CPU、内存、GPU、显存,究竟是什么,这里主要对此进行一个基础认识。 一、内存 内存(Memory)也被称为内存储器,主要用来暂时存放CPU中的运算数据及与硬盘等外部存储器交换的数据。只要…

CPU 与 内存

CPU 与 内存 CPU控制器控制单元指令译码器指令寄存器 运算器ALU算数运算器逻辑运算器 寄存器L1,L2数据寄存器,程序计数器,段寄存器,通用寄存器,标志寄存器 内存 CPU 控制器 控制单元 时序控制,指令控制 …

cpu与内存的工作原理

计算机最核心的俩大部分:cpu和内存。哪它们之间有什么联系呢? 程序是在内存里运行的,程序要运行语句需要cpu发出指令给程序,程序收到指令后就会找到main方法,把执行语句的指令和需要的数据分别给cpu里的pc和registers…

cpu和内存

CPU ( Central Processing Unit )是一块超大规模的集成电路板,是计算机的核心部件,承载着计算机的主要运算和控制功能,是计算机指令的最终解释模块和执行模块。硬件包括基板、核心、针脚,基板用来固定核心和针脚&#…

CPU、内存、缓存的关系

术语解释 (1)CPU(Central Processing Unit) 中央处理器 (2)内存 内存用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,内存的运行决定…

操作系统系列——CPU和内存

操作系统作为所有程序运行的载体,了解其基本组成和运行的逻辑也是十分重要的。虽然要弄明白它的方方面面需要花很长的时间,但作为底层码弄,弄清楚与平常程序打交到的CPU、内存、磁盘等工作原理也十分重要。因此这里我将学习的过程和知识点做一…

【IC卡】终极版复卡器操作方法 ID卡读取方法

终极版复卡器操作方法 ID卡读取方法: http://rfid.polinktech.com/RFID-Toolkit/RFID%E8%AF%BB%E5%8D%A1%E5%99%A8%E6%93%8D%E4%BD%9C%E8%AF%B4%E6%98%8E.pdf 1. 放上ID卡,,显示如图界面,点击读取卡号。 2. 读取卡号后,放上新的…

NFC手机模拟加密门禁卡

CSDN仅用于增加百度收录权重,排版未优化,日常不维护。请访问:www.hceng.cn 查看、评论。 本博文对应地址:https://hceng.cn/2019/07/12/NFC手机模拟加密门禁卡/#more 记录小米手机NFC模拟加密门禁卡,以及Proxmark3的使用。 0. 缘…

Arduino + RFID 读取 IC 卡 Arduino uno中获得RFID的UID 并通过串口转发RFID卡号

RFID简介:射频识别即RFID(Radio Frequency IDentification)技术,又称无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。常用的有低频(125k~134.2K)、高频(13.56Mhz)、超高频,微波等技术。…

UID卡修改UID锁死修复

原文地址::http://www.hackdig.com/?10/hack-15044.htm 相关文章 1、论如何优雅地蹭饭:克隆篡改公司饭卡(M1卡)----http://www.freebuf.com/articles/wireless/50123.html 2、什么是UID卡,它与普通卡有什么不同?---…