<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          [開放源代碼] 爬取微博用戶所有文章的爬蟲

          共 2669字,需瀏覽 6分鐘

           ·

          2021-10-18 02:18

          ? 點擊上方?月小水長?并?設為星標,第一時間接收干貨推送

          這是?月小水長?的第?88?篇原創(chuàng)干貨

          目前公眾號平臺改變了推送機制,點“贊”、點“在看”、添加過“星標”的同學,都會優(yōu)先接收到我的文章推送,所以大家讀完文章后,記得點一下“在看”和“贊”。


          在微博上發(fā)布的內容有的短文本+圖片(也就是微博),還有視頻,文章等形式,爬取用戶微博可以使用之前的源代碼文章:一個爬取用戶所有微博的爬蟲,還能斷網(wǎng)續(xù)爬那種

          本次分享的是如何爬取用戶的所有文章。有文章標題,id,內容,發(fā)布時間,閱讀數(shù),評論數(shù),點贊數(shù),圖片鏈接等字段或信息,并開放源代碼


          下面以【共青團中央】微博為 target,抓取該賬號發(fā)布的所有文章,大部分都是深度好文,值得保存起來細細品讀。


          它的主頁 url 地址為

          https://weibo.com/u/3937348351?tabtype=article

          可以從 url 知道它的 uid 就是 3937348351,我們不斷地往下翻網(wǎng)頁,可以注意到一個請求和文章數(shù)據(jù)是密切相關的,這個請求就是


          https://weibo.com/ajax/statuses/mymblog


          在 Filter 框輸入 mymlog 就能過濾出此類請求,然后在請求上右鍵 ?Copy?as cURL(bash),方便自動轉換成爬蟲代碼,具體可以參見不寫一行,自動生成爬蟲代碼,自動生成的代碼如下


          import requests
          headers = { 'authority': 'weibo.com', 'sec-ch-ua': '"Chromium";v="94", "Google Chrome";v="94", ";Not A Brand";v="99"', 'x-xsrf-token': 'M5-ZNBqYi4YtNkfZ8nh_Oz_0', 'traceparent': '00-348dc482c55e89d8cded23aaa7d56105-8f3e5ce7e78653bc-00', 'sec-ch-ua-mobile': '?0', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36', 'accept': 'application/json, text/plain, */*', 'x-requested-with': 'XMLHttpRequest', 'sec-ch-ua-platform': '"Windows"', 'sec-fetch-site': 'same-origin', 'sec-fetch-mode': 'cors', 'sec-fetch-dest': 'empty', 'referer': 'https://weibo.com/u/3937348351?tabtype=article', 'accept-language': 'zh-CN,zh;q=0.9,en-CN;q=0.8,en;q=0.7,es-MX;q=0.6,es;q=0.5',????'cookie':?'看不見我',}
          params = ( ('uid', '3937348351'), ('page', '2'), ('feature', '10'),)
          response?=?requests.get('https://weibo.com/ajax/statuses/mymblog',?headers=headers,?params=params)


          我們第一步要做的事情是將 params 改成如下的字典形式


              params = {        'uid': '1516153080',        'page': '1',        'feature': '10',    }

          其實上面一個爬蟲的爬取流程就完成,然后就是設計爬蟲架構了,具體來說就是考慮怎么自動翻頁請求,怎么及時保存數(shù)據(jù)以及選擇保存媒介,如何判斷停止,以及弱網(wǎng)無網(wǎng)等情況下爬蟲的穩(wěn)定性問題等等,這些都是需要在不斷實踐中結合業(yè)界最佳實踐和自己的偏好形成自己的方法論的,沒有最好的辦法,只有最合適的辦法。
          下面針對實際問題簡單介紹下如何設計這個爬蟲的問題。
          怎么讓它自動翻頁呢,這個爬蟲很簡單,只需要設計一個循環(huán),在解析保存完一個請求的數(shù)據(jù)后不斷 page + 1就行,有時稍微復雜點的需要從上一個請求的 response 里或者中間某個請求的 js 文件里找到指定的可以使請求繼續(xù)的參數(shù)。當解析發(fā)現(xiàn)沒有數(shù)據(jù)時,就可以跳出這個循環(huán)了。并保存數(shù)據(jù)。
          還有個問題就是解析的問題,這個爬蟲大部分字段是可以直接獲取的,但是文章的具體內容需要額外再請求一次,這也是大部分資訊類網(wǎng)站需要面臨的問題,無形中增加了大量請求,容易造成反爬。沒有很好的辦法可以避開這個問題,只能直面問題。
          保存數(shù)據(jù)時,一定要針對一些異常情況作處理,比如由于斷網(wǎng)了,爬了幾十萬條微博數(shù)據(jù)在內存中沒有持久化保存到文件中而丟失,這可就大虧特虧了,建議在執(zhí)行具體的 requests 請求時加個 try...except Exception NetworkError(偽代碼) ,在 expect 中執(zhí)行最后的保存工作,同時保存一些配置信息比如出錯的 page,下次可以直接從這個 page 繼續(xù),就沒必要重試了,因為沒網(wǎng)重試也是沒網(wǎng)。微博數(shù)量多的時候,可以考慮每翻 N 頁面保存一次,不過文章數(shù)量一般比微博少多個,可以直接爬完保存,具體情況具體分析。
          源代碼就不貼在公眾號了,篇幅過長,后臺小窗免費獲取,獲取源代碼后,只需要修改你想抓取的用戶 id 和你的登錄 cookie 即可,怎么獲取 id 和 cookie,可以參考上文如何自動生成代碼那部分。
          最近也會有較多微博爬蟲相關的更新,請持續(xù)關注,在短視頻爆炸的今天,原創(chuàng)圖文內容不易,轉發(fā)好看就是最大的支持~
          瀏覽 52
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩精品一区二区三区四区苍老师 | 激情五月丁香小说 | 婷婷亚洲五月***久久 | 国产精品99久久久久久成人 | 欧美亚州15p |