Python爬蟲入門-fiddler抓取手機新聞評論

之前一直都聽過抓包,抓包,但是一直沒有在手機上抓過包,這次一試,當做是一次小練習,在網(wǎng)上有挺多Fiddler安裝和配置的教程的,我也找了一些,大家可以借鑒:

1、Fiddler|Fiddler安裝與配置
2、抓包工具Fidder詳解(主要來抓取Android中app的請求)
3、使用Fiddler抓到包后分析

之前在安裝配置Fiddler的過程中因為使用某國產(chǎn)手機的原因無法使用代理被狠狠坑了一下,在此留個記號。

這次想練習的是今日頭條新聞《跳樓產(chǎn)婦聊天記錄曝光 丈夫:出事前未察覺她有情緒異?!?/a> 此新聞的相關評論信息??梢钥吹皆赑C端只是顯示幾條評論信息,所以就去爬移動端。
打開Fiddler,并且在手機上打開評論信息,不斷下拉,可以看到評論會慢慢地加載出來,通過Fiddler的過濾功能,可以看到:

分析-01.png

左側這幾條就是我們要找的相關的含有評論信息的鏈接,右上方是request,右下方是response。從右上上可以看出是正常的get方式的請求,返回的是JSon格式的數(shù)據(jù)。
這個URL很長,看著很暈,我就把這個URL復制到TXT文件下對比一下:

分析-02.png

這個規(guī)律還是比較好找的,通過我不斷對評論頁的下拉,只有最后的offset參數(shù)按照20的整數(shù)倍發(fā)生改變,利用這個規(guī)律就可以構建URL進行模擬的請求。當然這個URL太長了可以進行適當?shù)目s減,里面有一些是設備的參數(shù),可以進行刪除,然后在瀏覽器上試一試看能不能返回相關的信息,最后我構建的URL:https://ic.snssdk.com/article/v2/tab_comments/?resolution=640*960&aggr_type=1&count=20&group_id=6462587303142359566&item_id=6462587303142359566&offset={}。
但是在對offset賦值的時候最多只能取到1500,再往后取是沒有返回評論信息的結果的,也就是說只能夠得到一千多條的評論信息。

接下來就可以進行編寫代碼了:

toutiao.py:

import scrapy
import json
from toutiao_chanfu.items import ToutiaoChanfuItem

class ToutiaoSpider(scrapy.Spider):
    name = 'toutiao'
    start_urls = ['https://ic.snssdk.com/article/v2/tab_comments/?resolution=640*960&aggr_type=1&count=20&group_id=6462587303142359566&item_id=6462587303142359566&offset={}'.format(i*20) for i in range(0,76)]

    def parse(self, response):
        item=ToutiaoChanfuItem()
        html=response.text
        if html:
            content=json.loads(html)
            if content:
                datas=content.get("data")
                if datas:
                    for data in datas:
                        comment=data.get("comment")
                        if comment:
                            item['user_name']=comment.get("user_name")
                            item['text']=comment.get("text")
                            # print(item['user_name']+':'+item['text']+'\n')
                            yield item
settings.py:

SPIDER_MODULES = ['toutiao_chanfu.spiders']
NEWSPIDER_MODULE = 'toutiao_chanfu.spiders'

MONGO_URI='localhost'
MONGO_DB='chanfuissue'

HTTPERROR_ALLOWED_CODES = [400]

ROBOTSTXT_OBEY = False
DOWNLOAD_DELAY = 3
COOKIES_ENABLED = False

DEFAULT_REQUEST_HEADERS = {
  'Accept': '*/*',
  'Accept-Language': 'zh-Hans;q=1, en;q=0.9, zh-Hant;q=0.8, fr;q=0.7, de;q=0.6, ja;q=0.5',
  'Host: ic.snssdk.com'
  'Proxy-Connection':'keep-alive',
  'Cookie':'CNZZDATA1263676333=1053471997-1506224751-%7C1506224751; install_id=15419404350; qh[360]=1; ttreq=1$81cf78bc9e126dbc3f1e1a22789fdc99f9039157; UM_distinctid=15eb20c9b0da-0f7a55db4-3d5b614e-25800-15eb20c9b102e',
  'X-SS-Cookie':'CNZZDATA1263676333=1053471997-1506224751-%7C1506224751; install_id=15419404350; qh[360]=1; ttreq=1$81cf78bc9e126dbc3f1e1a22789fdc99f9039157; UM_distinctid=15eb20c9b0da-0f7a55db4-3d5b614e-25800-15eb20c9b102e',
  'Connection':'keep-alive',
  'User-Agent':'News/6.3.4 (iPhone; iOS 7.0.3; Scale/2.00)',
}

ITEM_PIPELINES = {
   'toutiao_chanfu.pipelines.MongoPipeline': 200,
}

成功運行后是這樣的:

運行-01.png

前幾次運行的時候都會出現(xiàn)400、502的狀態(tài)碼也不知是哪里抽風,后面直接卡死(傷不起的電腦?。┖竺嫖宜餍灾苯悠糁匦逻\行Pycharm。

最后的結果是存儲在Mongodb數(shù)據(jù)庫:

運行-02.png

一共共抓取到了1400多條的評論信息。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,644評論 19 139
  • 聲明:本文講解的實戰(zhàn)內容,均僅用于學習交流,請勿用于任何商業(yè)用途! 一、前言 強烈建議:請在電腦的陪同下,閱讀本文...
    Bruce_Szh閱讀 13,011評論 6 28
  • # 一度蜜v3.0協(xié)議 --- # 交互協(xié)議 [TOC] ## 協(xié)議說明 ### 請求參數(shù) 下表列出了v3.0版協(xié)...
    c5e350bc5b40閱讀 738評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,175評論 25 708
  • “沒有一份工作是不委屈的” 朋友圈里又聽到了這樣的聲音,也許是老板發(fā)的,也許是轉發(fā)給老板看的,不管怎樣,工作和委屈...
    貓小喵ao閱讀 628評論 8 5

友情鏈接更多精彩內容