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),隨著版本的不斷更新和語言新功能的添加,越多被用於獨立的、大型項目的開發。