Python實現的爬取網易動態評論操作示例

2022-10-04 19:33:10 字數 2124 閱讀 8814

開啟網易的一條新聞的源**後,發現並沒有所要得評論內容。

經過學習後發現,源**只是乙個完整頁面的「骨架」,而我所需要的內容kkwhnxtff是它的填充物,這時候需要開啟工具裡面的開發人員工具,從載入的「骨肉」裡找到我所要的評論

圈住的是型別

找到之後開啟網頁,發現json型別的格式,用我已學過的正則,bs都不好鬧,於是便去了解了正則,發現把json的格式換化成python的格式後,用列表提取內容是一條明朗的道路。。。

但是在細緻分析的時候也發現了問題

從這裡獲得每條評論時,感覺有點不對,觀察發現如果是回覆評論的評論會出現他回覆那條評論的資料,於是用正則提取了一下

最終的**如下:

#coding=utf-8

__author__ = 'kongmengfan123'

import urllib

import re

import json

import time

def gethothtml(url):#最熱評論

page=urllib.urlopen(url)

html=page.read()

get_json(html)

def gethnewtml():#最新評論有5頁

for i in range(1,6):

url = '程式設計客棧4qfijns0001875o/comments/newlist?offset=%d&limit=30&showlevelthreshold=72&headlimit=1&taillimit=2&callback=getdata&ibc=newspc&_=1478010624978'%i*30

page = urllib.urlopen(url)

html=page.read()

time.sleep(1)

get_json(html)

def get_json(json_):

end_=re.compile(r'\);')#將json網頁轉化成python資料www.cppcns.com

begain=re.compile(r'getdata\(')

json_=begain.sub('',json_)

json_=end_.sub('',json_)

ajson=json.loads(json_)

lis=ajson["commenti程式設計客棧ds"]#獲得每條評論的鍵

n=0for i in range(1,len(lis)):

try:

xulie=re.compile('\d')#取得準確評論的鍵(去掉回覆)

bia=re.findall(xulie,lis[n])

w.write(ajson['comments'][bia[len(bia)-1]]['user']['nickname'].encode('utf-8')+'|')

except keyerror:

w.write(ajson['comments'][bia[len(bia)-1]]['user']['location'].encode('utf-8')+'|')

if (len(lis[n])>13):

xulie=re.compile('\d')

程式設計客棧 bia=re.findall(xulie,lis[n])

w.write(ajson['comments'][bia[len(bia)-1]]['content'].encode('utf-8')+'\n')

else:

w.write(ajson['comments'][lis[n]]['content'].encode('utf-8')+'\n')

n=n+1

return lis

w=open('wangyi.txt','w')

w.write('使用者名稱'+'|'+'熱門評論'+'\n')

hot_=gethothtml('4qfijns0001875o/comments/hotlist?offset=0&limit=40&showlevelthreshold=72&headlimit=1&taillimit=2&callback=getdata&ibc=newspc')

w.write('使用者名稱'+'|'+'最新評論'+'\n')

gethnewtml()

w.close()

python爬取網易評論

爬取的是 最近華北空氣汙染嚴重 的新聞 1 首先獲取json格式的檔案 我用的是360瀏覽器 貌似用谷歌比較好,但我谷歌出了點問題 最新跟帖 所以要同時爬取兩種 3 處理字串 用 json.loads 解碼字串轉換為python形式時格式很重要,在這裡轉換成字典 形式。將開頭和結尾去掉,只剩下乙個大...

python動態爬取知乎 python爬取微博動態

在初學爬蟲的過程中,我們會發現很多 都使用ajax技術動態載入資料,和常規的 不一樣,資料是動態載入的,如果我們使用常規的方法爬取網頁,得到的只是一堆html 沒有任何的資料。比如微博就是如此,我們可以通過下滑來獲取更多的動態。對於這樣的網頁該如何抓取呢?我們以微博使用者動態為例,抓取某名使用者的文...

爬取網易新聞

爬取網易新聞 在本小節的內容中呢,筆者將會給大家講述如何去過濾我們所不需要的內容。下面的例子,是本人在爬取網易新聞時,遇到的乙個小問題,在定位元素之後,進行列印的時候,出現了部分內容無法正常解析。筆者也是進行了很長時間的嘗試,請教了很多人,才得到的三種方法。我們一起來看。通過寫入檔案的方法過濾元素 ...