如何用python爬取一本书的评论用户

作者&投稿:闭届 (若有异议请与网页底部的电邮联系)
怎么用python爬取一本小说~

要自己写框架,首先你要知道web框架都需要哪些,你可以看一下框架源码,或者参与到框架开源开发中。如果你要自己看源码,推荐看bottle.py,这个python的web框架只有一个文件,很方便。如果你要参与项目

假如一个商品全部评论数据为20w+ 默认好评15w+ 这15w+的默认好评就会不显示出来。那么我们可以爬取的数据就只剩下5w+ 接下来 我们就分别爬取全部好评 好评 中评 差评 追加评价 但是就算这些数据加起来 也仍然不足5w+ 上文的博主猜测可能有两点原因:

1.出现了数据造假,这个数字可能是刷出来的
2.真的有这么多的评论,但这时候系统可能只显示其中比较新的评论,而对比较旧的评论进行了存档。
在博主理论的基础上我也进行了很多相应的测试,就是说无论如何 我们最终都爬不到剩下的5w条数据 只能爬取一部分但这一部分数据也将近上千多条 如果有小伙伴能爬取下更多欢迎补充。

整体思路

全部评价 好评 中评 差评 追加评价的网址都是涉及到一定的参数的 只要修改网页的数据 在遍历页码 即可完成全部的爬取。

京东图书评论有非常丰富的信息,这里面就包含了购买日期、书名、作者、好评、中评、差评等等。以购买日期为例,使用Python + Mysql的搭配进行实现,程序不大,才100行。相关的解释我都在程序里加注了:

  • from selenium import webdriver

  • from bs4 import BeautifulSoup

  • import re

  • import win32com.client

  • import threading,time

  • import MySQLdb

  • def mydebug():

  • driver.quit()

  • exit(0)

  • def catchDate(s):

  • """页面数据提取"""

  • soup = BeautifulSoup(s)

  • z = []

  • global nowtimes

  • m = soup.findAll("div",class_="date-buy")

  • for obj in m:

  • try:

  • tmp = obj.find('br').contents

  • except Exception, e:

  • continue

  • if(tmp != ""):

  • z.append(tmp)

  • nowtimes += 1

  • return z

  • def getTimes(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:\Python27\Scripts\IEDriverServer')

  • #driver = webdriver.Chrome('C:\Python27\Scripts\chromedriver')

  • #读出Mysql中的评论页面,进行抓取

  • # 连接数据库 

  • try:

  • conn = MySQLdb.connect(host='localhost',user='root',passwd='',db='jd')

  • except Exception, e:

  • print e

  • 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

  • if alldata:

  • for rec in alldata:

  • #rec[0]--bookid,rec[1]--cateid,rec[2]--pagenumber

  • if(rec[0] != str(num1) and flag == 0):

  • continue

  • else:

  • flag = 1

  • for p in range(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)

  • #写入数据库

  • for z in buydate:

  • sql = "INSERT INTO ljj (id, cateid, bookid, date) VALUES (NULL, '" + rec[0] + "','" + rec[1] + "','" + z[0] + "');"

  • try:

  • cursor.execute(sql)

  • except Exception, e:

  • print e

  • conn.commit()

  • print getTimes(nowtimes,totaltimes)

  • driver.quit()

  • cursor.close()

  • conn.close()




  •    

京东图书评论有非常丰富的信息,这里面就包含了购买日期、书名、作者、好评、中评、差评等等。以购买日期为例,使用Python + Mysql的搭配进行实现,程序不大,才100行。相关的解释我都在程序里加注了:

  • from selenium import webdriver

  • from bs4 import BeautifulSoup

  • import re

  • import win32com.client

  • import threading,time

  • import MySQLdb

  • def mydebug():

  • driver.quit()

  • exit(0)

  • def catchDate(s):

  • """页面数据提取"""

  • soup = BeautifulSoup(s)

  • z = []

  • global nowtimes

  • m = soup.findAll("div",class_="date-buy")

  • for obj in m:

  • try:

  • tmp = obj.find('br').contents

  • except Exception, e:

  • continue

  • if(tmp != ""):

  • z.append(tmp)

  • nowtimes += 1

  • return z

  • def getTimes(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:\Python27\Scripts\IEDriverServer')

  • #driver = webdriver.Chrome('C:\Python27\Scripts\chromedriver')

  • #读出Mysql中的评论页面,进行抓取

  • # 连接数据库 

  • try:

  • conn = MySQLdb.connect(host='localhost',user='root',passwd='',db='jd')

  • except Exception, e:

  • print e

  • 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

  • if alldata:

  • for rec in alldata:

  • #rec[0]--bookid,rec[1]--cateid,rec[2]--pagenumber

  • if(rec[0] != str(num1) and flag == 0):

  • continue

  • else:

  • flag = 1

  • for p in range(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)

  • #写入数据库

  • for z in buydate:

  • sql = "INSERT INTO ljj (id, cateid, bookid, date) VALUES (NULL, '" + rec[0] + "','" + rec[1] + "','" + z[0] + "');"

  • try:

  • cursor.execute(sql)

  • except Exception, e:

  • print e

  • conn.commit()

  • print getTimes(nowtimes,totaltimes)

  • driver.quit()

  • cursor.close()

  • conn.close()




  •    



如何用python解决网络爬虫问题?
网络爬虫问题可以使用Python编程语言来解决。Python提供了许多强大的库和框架,可以帮助您编写网络爬虫程序。其中,常用的库包括BeautifulSoup、Scrapy和Requests等。使用Python编写网络爬虫程序的一般步骤如下:1. 导入所需的库:使用import语句导入所需的库,如BeautifulSoup、Scrapy和Requests等。2. 发送HTTP请求...

Python是什么?它有何用途?
脚本语言:Perl, Python, Java, Ruby。简单,易学,良好的文本处理能方便网页内容的细致提取,但效率往往不高,适合对少量网站的聚焦爬取 C#?为什么眼下最火的是Python?个人用c#,java都写过爬虫。区别不大,原理就是利用好正则表达式。只不过是平台问题。后来了解到很多爬虫都是用python写的,于是便一...

为什么大部分人爬虫都用 python?
Python 是一种非常流行的编程语言,因为它易于学习和使用,而且有很多库和框架可以帮助开发人员快速构建爬虫程序。Python 的语法简单,代码简洁,这使得它成为编写爬虫程序的理想语言之一。此外,Python 社区开源了许多与爬虫相关的库和框架,比如 requests、lxml、scrapy、selenium、BeautifulSoup 等 。

python为什么叫爬虫?
Python爬虫开发工程师,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。作为一...

如何入门Python爬虫
个人觉得:新手学习python爬取网页先用下面4个库就够了:(第4个是实在搞不定用的,当然某些特殊情况它也可能搞不定)1.打开网页,下载文件:urllib 2.解析网页:,熟悉JQuery的可以用Pyquery 3.使用Requests来提交各种类型的请求,支持重定向,cookies等。4.使用Selenium,模拟浏览器提交类似用户的操作,...

爬虫python是干什么
爬虫python是干什么?所谓爬虫就是指在给定url(网址)中获取我们对我们有用的数据信息,通过代码实现数据的大量获取,在经过后期的数据整理、计算等得出相关规律,以及行业趋势等信息。如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python...

python为什么叫爬虫
拓展:Python爬虫是什么 Python爬虫就是使用 Python 程序开发的网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。主要用于搜索引擎,它将一个网站的所有内容与链接进行阅读,并建立相关的全文索引到数据库中,然后跳到另一个网站。今天的分享就是这些,希望能帮助到大家!

爬虫是什么意思
上文介绍了python爬虫的一些基础知识,相信大家对于“python爬虫是什么意思”与“爬虫怎么抓取数据”有一定的的认识了。现在大数据时代,很多学python的时候都是以爬虫入手,学习网络爬虫的人越来越多。通常使用爬虫抓取数据都会遇到IP限制问题,使用高匿代理,可以突破IP限制,帮助爬虫突破网站限制次数。

python3 怎么爬取新闻网站
八爪鱼采集器是一款功能强大的网页数据采集器,可以帮助您快速、高效地爬取新闻网站的数据。以下是使用Python3进行新闻网站爬取的一般步骤:1. 导入所需的库,如requests、BeautifulSoup等。2. 使用requests库发送HTTP请求,获取新闻网站的HTML源代码。3. 使用BeautifulSoup库解析HTML源代码,提取所需的新闻...

python爬虫有什么用
Python爬虫是用Python编程语言实现的网络爬虫,主要用于网络数据的抓取和处理,相比于其他语言,Python是一门非常适合开发网络爬虫的编程语言,大量内置包,可以轻松实现网络爬虫功能。Python爬虫可以做的事情很多,如搜索引擎、采集数据、广告过滤等,Python爬虫还可以用于数据分析,在数据的抓取方面可以作用巨大!

瑞安市18796053473: 如何用python爬取一个网站的评论数据 -
欧阳邓蛾贞: 假如一个商品全部评论数据为20w+ 默认好评15w+ 这15w+的默认好评就会不显示出来.那么我们可以爬取的数据就只剩下5w+ 接下来 我们就分别爬取全部好评 好评 中评 差评 追加评价 但是就算这些数据加起来 也仍然不足5w+ 上文的博主猜测...

瑞安市18796053473: 为什么Python爬虫爬取评论的时候返回了空表格 -
欧阳邓蛾贞: 错误分析:1、使用类似requests模块,请求的内容是当前页未经渲染的response,评论一般为异步加载,源码中应该找不到该数据(可采用抓包,抓取评论接口,模拟访问,直接接口爬取)2、数据解析规则错误3、加载未完成

瑞安市18796053473: 怎么用python爬取一本小说 -
欧阳邓蛾贞: 要自己写框架,首先你要知道web框架都需要哪些,你可以看一下框架源码,或者参与到框架开源开发中.如果你要自己看源码,推荐看bottle.py,这个python的web框架只有一个文件,很方便.如果你要参与项目

瑞安市18796053473: Python爬虫如何抓取豆瓣影评中的所有数据? -
欧阳邓蛾贞: 你可以用前嗅爬虫采集豆瓣的影评,我之前用的,还可以过滤只采集评分在6分以上的所有影评,非常强大,而且他们软件跟数据库对接,采集完数据后,直接入库,导出excel表.很省心.

瑞安市18796053473: python 怎样爬去网页的内容 -
欧阳邓蛾贞: 用python爬取网页信息的话,需要学习几个模块,urllib,urllib2,urllib3,requests,httplib等等模块,还要学习re模块(也就是正则表达式).根据不同的场景使用不同的模块来高效快速的解决问题.最开始我建议你还是从最简单的urllib模块学起,比如...

瑞安市18796053473: 请教python Scrapy 高手 如何抓取腾讯新闻评论页面内容,有重谢 -
欧阳邓蛾贞: 其实你可以换个思路,scrapy的确是可以爬去js生成的代码,使用webkit中间件,这个网上有教程,你可以搜一下.但是有个更好的方法,通过请求分析获取到评论的信息,比如:这个新闻:http://coral.qq.com/1129103872 对应的评论地址:http://coral.qq.com/article/1129103872/comment?reqnum=2000 后面那个reqnum是你要提取的评论数,希望这个能帮到你.如果解决了您的问题请采纳!如果未解决请继续追问

瑞安市18796053473: Python中怎么用爬虫爬 -
欧阳邓蛾贞: Python爬虫可以爬取的东西有很多,Python爬虫怎么学?简单的分析下: 如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工...

瑞安市18796053473: 如何用爬虫抓取京东商品评价 -
欧阳邓蛾贞: 如果你熟悉python的话,你可以自己编爬虫来抓取评价;如果觉得时间成本高,可以用采集工具,市面上采集功能有几个,比如集搜客、网络矿工、狂采等,可以用集搜客,因为是免费的,在官网可以下现成的规则,淘宝天猫搜索列表、商品详细等;再简单一点,付费定制数据了.

瑞安市18796053473: python 爬虫 怎么获取标签中的注释 -
欧阳邓蛾贞: 1. 读取网址 2. 获取源码 3. 根据源码中的信息 分析源码,查找标签.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网