上一節我們已經知道如何使用Fiddler進行抓包分析,那么接下來我們開始完成一個簡單的小例子
抓取騰訊視頻的評論內容
首先我們打開騰訊視頻的官網https://v.qq.com/
我們打開【電視劇】這一欄,找到一部比較精彩的電視劇爬取一下,例如:我們就爬取【下一站,別離】這部吧
我們找到這部電視劇的評論如下圖:
我們看到上圖標記部分【查看更多評論】
我們首先在Fiddelr中使用命令clear清除之前瀏覽的記錄
輸入命令直接回車即可
接着我們點擊【查看更多評論】,此時再次看Fiddler,我們可以看到【JS】這個小圖標
我們右鍵上圖標記部分
第一次點擊
接着【Copy】---【Just Url】
地址為:
我們將此地址放到瀏覽器查看效果如何?
現在我們還沒發現什么規律,那我們再點擊一次
第二次點擊
瀏覽器顯示
我們將上述2個地址放在word進行分析后,分析結果如下:
我們可以看到黃色標記部分沒什么規律,最后紅色標記是按1遞增
那么我們驗證下黃色標記部分是否是必須的呢?刪除黃色部分放在瀏覽器執行,查看結果,有沒有黃色部分結果一致,那么我們接下來開始代碼了
import urllib.request import re import urllib.error headers=("User_Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0") #自定義opener opener = urllib.request.build_opener() opener.addheaders = [headers] urllib.request.install_opener(opener) cursor_id = '6394260346548095809' v_id =1524402700840 url = "https://video.coral.qq.com/varticle/2580302776/comment/v2?callback=_varticle2580302776commentv2&orinum=10&oriorder=o&pageflag=1&cursor="+cursor_id+"&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=9&_="+str(v_id) for i in range(0,10): content = urllib.request.urlopen(url).read().decode("utf-8") patnext = '"last":"(.*?)"' nextid = re.compile(patnext).findall(content)[0] patcomment = '"content":"(.*?)",' comment_content = re.compile(patcomment).findall(content) for j in range(1,len(comment_content)): print("-----第"+str(i)+str(j)+"條評論內容是:") #print(eval("u"+"\'"+comment_content[j]+"\'")) try: t1 = comment_content[j].encode('latin-1').decode('unicode_escape') print(t1) except Exception as e: print("***********該條評論含有有特殊字符************") url="https://video.coral.qq.com/varticle/2580302776/comment/v2?callback=_varticle2580302776commentv2&orinum=10&oriorder=o&pageflag=1&cursor="+nextid+"&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=9&_="+str(v_id+i)