python爬取评论
Ⅰ 如何用python爬取一个网站的评论数据
假如一个商品全部评论数据为20w+ 默认好评15w+ 这15w+的默认好评就会不显示出来。那么我们可以爬取的数据就只剩下5w+ 接下来 我们就分别爬取全部好评 好评 中评 差评 追加评价 但是就算这些数据加起来 也仍然不足5w+ 上文的博主猜测可能有两点原因:
1.出现了数据造假,这个数字可能是刷出来的
2.真的有这么多的评论,但这时候系统可能只显示其中比较新的评论,而对比较旧的评论进行了存档。
在博主理论的基础上我也进行了很多相应的测试,就是说无论如何 我们最终都爬不到剩下的5w条数据 只能爬取一部分但这一部分数据也将近上千多条 如果有小伙伴能爬取下更多欢迎补充。
整体思路
全部评价 好评 中评 差评 追加评价的网址都是涉及到一定的参数的 只要修改网页的数据 在遍历页码 即可完成全部的爬取。
Ⅱ python爬取用户评价的目的与意义
是为了从互联网上抓取对于我们有价值的信息。
比如说:访问天猫的网站,搜索对应的商品,然后爬取它的评论数据,可以作为设计前期的市场调研的数据,帮助很大。
在爬虫领域,Python几乎是霸主地位,虽然C++、Java、GO等编程语言也可以写爬虫,但Python更具优势,不仅拥有优秀的第三方库,还可以为我们做很多的事情,比如:收集数据、数据储存、网页预处理等。
Ⅲ 如何用python爬取一本书的评论用户
京东图书评论有非常丰富的信息,这里面就包含了购买日期、书名、作者、好评、中评、差评等等。以购买日期为例,使用Python + Mysql的搭配进行实现,程序不大,才100行。相关的解释我都在程序里加注了:
fromseleniumimportwebdriver
frombs4importBeautifulSoup
importre
importwin32com.client
importthreading,time
importMySQLdb
defmydebug():
driver.quit()
exit(0)
defcatchDate(s):
"""页面数据提取"""
soup=BeautifulSoup(s)
z=[]
globalnowtimes
m=soup.findAll("div",class_="date-buy")
forobjinm:
try:
tmp=obj.find('br').contents
exceptException,e:
continue
if(tmp!=""):
z.append(tmp)
nowtimes+=1
returnz
defgetTimes(n,t):
"""获取当前进度"""
return"当前进度为:"+str(int(100*n/t))+"%"
#———————————————————————————————————|程序开始|—————————————————————————————————
#确定图书大类
cate={"3273":"历史","3279":"心理学","3276":"政治军事","3275":"国学古籍","3274":"哲学宗教","3277":"法律","3280":"文化","3281":"社会科学"}
#断点续抓
num1=input("bookid:")
num2=input("pagenumber:")
#生成图书大类链接,共需17355*20=347100次
totaltimes=347100.0
nowtimes=0
#开启webdirver的PhantomJS对象
#driver=webdriver.PhantomJS()
driver=webdriver.Ie('C:Python27ScriptsIEDriverServer')
#driver=webdriver.Chrome('C:Python27Scriptschromedriver')
#读出Mysql中的评论页面,进行抓取
# 连接数据库
try:
conn=MySQLdb.connect(host='localhost',user='root',passwd='',db='jd')
exceptException,e:
printe
sys.exit()
# 获取cursor对象
cursor=conn.cursor()
sql="SELECT * FROM booknew ORDER BY pagenumber DESC"
cursor.execute(sql)
alldata=cursor.fetchall()
flag=0
flag2=0
# 如果有数据返回就循环输出,htt/review/10178500-1-154.html
ifalldata:
forrecinalldata:
#rec[0]--bookid,rec[1]--cateid,rec[2]--pagenumber
if(rec[0]!=str(num1)andflag==0):
continue
else:
flag=1
forpinrange(num2,rec[2]):
if(flag2==0):
num2=0
flag2=1
p+=1
link="htteview/"+rec[0]+"-1-"+str(p)+".html"
#抓网页
driver.get(link)
html=driver.page_source
#抓评论
buydate=catchDate(html)
#写入数据库
forzinbuydate:
sql="INSERT INTO ljj (id, cateid, bookid, date) VALUES (NULL, '"+rec[0]+"','"+rec[1]+"','"+z[0]+"');"
try:
cursor.execute(sql)
exceptException,e:
printe
conn.commit()
printgetTimes(nowtimes,totaltimes)
driver.quit()
cursor.close()
conn.close()
京东图书评论有非常丰富的信息,这里面就包含了购买日期、书名、作者、好评、中评、差评等等。以购买日期为例,使用Python + Mysql的搭配进行实现,程序不大,才100行。相关的解释我都在程序里加注了:
fromseleniumimportwebdriver
frombs4importBeautifulSoup
importre
importwin32com.client
importthreading,time
importMySQLdb
defmydebug():
driver.quit()
exit(0)
defcatchDate(s):
"""页面数据提取"""
soup=BeautifulSoup(s)
z=[]
globalnowtimes
m=soup.findAll("div",class_="date-buy")
forobjinm:
try:
tmp=obj.find('br').contents
exceptException,e:
continue
if(tmp!=""):
z.append(tmp)
nowtimes+=1
returnz
defgetTimes(n,t):
"""获取当前进度"""
return"当前进度为:"+str(int(100*n/t))+"%"
#———————————————————————————————————|程序开始|—————————————————————————————————
#确定图书大类
cate={"3273":"历史","3279":"心理学","3276":"政治军事","3275":"国学古籍","3274":"哲学宗教","3277":"法律","3280":"文化","3281":"社会科学"}
#断点续抓
num1=input("bookid:")
num2=input("pagenumber:")
#生成图书大类链接,共需17355*20=347100次
totaltimes=347100.0
nowtimes=0
#开启webdirver的PhantomJS对象
#driver=webdriver.PhantomJS()
driver=webdriver.Ie('C:Python27ScriptsIEDriverServer')
#driver=webdriver.Chrome('C:Python27Scriptschromedriver')
#读出Mysql中的评论页面,进行抓取
# 连接数据库
try:
conn=MySQLdb.connect(host='localhost',user='root',passwd='',db='jd')
exceptException,e:
printe
sys.exit()
# 获取cursor对象
cursor=conn.cursor()
sql="SELECT * FROM booknew ORDER BY pagenumber DESC"
cursor.execute(sql)
alldata=cursor.fetchall()
flag=0
flag2=0
# 如果有数据返回就循环输出,httreview/10178500-1-154.html
ifalldata:
forrecinalldata:
#rec[0]--bookid,rec[1]--cateid,rec[2]--pagenumber
if(rec[0]!=str(num1)andflag==0):
continue
else:
flag=1
forpinrange(num2,rec[2]):
if(flag2==0):
num2=0
flag2=1
p+=1
link="ht.com/review/"+rec[0]+"-1-"+str(p)+".html"
#抓网页
driver.get(link)
html=driver.page_source
#抓评论
buydate=catchDate(html)
#写入数据库
forzinbuydate:
sql="INSERT INTO ljj (id, cateid, bookid, date) VALUES (NULL, '"+rec[0]+"','"+rec[1]+"','"+z[0]+"');"
try:
cursor.execute(sql)
exceptException,e:
printe
conn.commit()
printgetTimes(nowtimes,totaltimes)
driver.quit()
cursor.close()
conn.close()
Ⅳ 怎么用Python爬取抖音高点赞高收藏的短视频
用scrapy框架,但是你这样做侵犯了知识版权,如果用于商用,会面临起诉。
记者从北京市海淀区人民法院获悉,因认为刷宝APP采用技术手段或人工方式获取抖音APP短视频及评论并向公众提供的行为构成不正当竞争,北京微播视界科技有限公司(下称微播公司)将北京创锐文化传媒有限公司(下称创锐公司)、成都力奥文化传播有限公司(下称力奥公司)诉至法院。在案件审理过程中,微播公司提出行为保全申请,要求创锐公司、力奥公司立即停止采用技术手段或人工方式获取来源于抖音APP中的视频文件、评论内容并通过刷宝APP向公众提供的行为。北京海淀法院于6月28日依法做出行为保全裁定,支持了微播公司的行为保全申请。
微播公司称,其为抖音APP的开发者和运营者,通过投入高额的运营成本、提供优质的原创内容在同类产品中形成竞争优势,微播公司对抖音APP中的短视频及评论享有合法权益。二被申请人作为同业竞争者,在其共同运营的刷宝APP中向公众提供非法抓取自抖音APP的短视频及用户评论,已取证的短视频数量达5万余条。二被申请人的上述行为削弱了微播公司的竞争优势,违反了反不正当竞争法第二条的规定,构成不正当竞争。
Ⅳ 用python 爬取微博评论,怎么打开微博评论下的查看更多
基本的套路就是利用微博账号模拟登陆,这个过程比较复杂,因为微博有加密处理,推荐去github下载一个python模拟登陆新浪的源码。
当你通过模拟登陆进入微博界面的时候,尝试如何用python的模块去提交query,然后通过beautifulsoup或者是httpparse来获取内容信息。当然,自己学习正则表达式来获取也是可以的。
Ⅵ python使用json爬取京东评论,在浏览器页面的request url 打开是空白的,所以导致No JSON object
json不是一种格式吗,能当爬虫用?你访问的url既然是空白的,那就说明不是这个url,注意找找究竟是哪个url,能访问并且显示想要的内容才是对的。最后就是如果能访问,爬虫却抓取不下来,就得考虑是不是被检测到爬虫了,需要修改请求头部等信息隐藏自身。
Ⅶ python bs4怎么抓豆瓣评论做词频表
根据词频生成词云。
该程序进行爬取豆瓣热评,将爬取的评论(json文件)保存到与该python文件同一级目录下注意需要下载这几个库:requests、lxml、json、time,该程序将json中的数据进行处理,提取重要信息,并用wordcloud库制作词云图片,同样保存到与该python文件同一级目录下注意需要下载这几个库:jieba、wordcloud、json。
Python是一种跨平台的计算机程序设计语言是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。