<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>

          爬蟲實戰(zhàn) | 用Python爬取指定關(guān)鍵詞的微博~

          共 2300字,需瀏覽 5分鐘

           ·

          2021-06-16 10:43



          前幾天學(xué)校一個老師在做微博的輿情分析找我?guī)退阋粋€用關(guān)鍵字爬取微博的爬蟲,再加上最近很多讀者問微博爬蟲的問題,今天小編來跟大家分享一下。


          01

          分析頁面


          我們此次選擇的是從移動端來對微博進(jìn)行爬取。移動端的反爬就是信息校驗反爬蟲的cookie反爬蟲,所以我們首先要登陸獲取cookie。



          登陸過后我們就可以獲取到自己的cookie了,有不懂的小伙伴可以看這篇文章學(xué)會Cookie,解決登錄爬取的困擾!。然后我們來觀察用戶是如何搜索微博內(nèi)容的。


          平時我們都是在這個地方輸入關(guān)鍵字,來進(jìn)行搜索微博。



          我通過在開發(fā)者模式下對這個頁面觀察發(fā)現(xiàn),它每次對關(guān)鍵字發(fā)起請求后,就會返回一個XHR響應(yīng)。



          我們現(xiàn)在已經(jīng)找到數(shù)據(jù)真實存在的頁面了,那就可以進(jìn)行爬蟲的常規(guī)操作了。


          02

          數(shù)據(jù)采集


          在上面我們已經(jīng)找到了數(shù)據(jù)存儲的真實網(wǎng)頁,現(xiàn)在我們只需對該網(wǎng)頁發(fā)起請求,然后提取數(shù)據(jù)即可。


          01

           發(fā)起請求


          通過對請求頭進(jìn)行觀察,我們不難構(gòu)造出請求代碼。



          代碼如下:

          key = input("請輸入爬取關(guān)鍵字:")
          for page in range(1,10):
          params = (
          ('containerid', f'100103type=1&q={key}'),
          ('page_type', 'searchall'),
          ('page', str(page)),
          )

          response = requests.get('https://m.weibo.cn/api/container/getIndex', headers=headers, params=params)


          02

           提取數(shù)據(jù)


          從上面我們觀察發(fā)現(xiàn)這個數(shù)據(jù)可以轉(zhuǎn)化成字典來進(jìn)行爬取,但是經(jīng)過我實際測試發(fā)現(xiàn),用正則來提取是最為簡單方便的,所以這里展示的是正則提取的方式,有興趣的讀者可以嘗試用字典方式來提取數(shù)據(jù)。代碼如下:

          r = response.text
          title = re.findall('"page_title":"(.*?)"',r)
          comments_count = re.findall('"comments_count":(.*?),',r)
          attitudes_count = re.findall('"attitudes_count":(.*?),',r)
          for i in range(len(title)):
          print(eval(f"'{title[i]}'"),comments_count[i],attitudes_count[i])


          在這里有一個小問題要注意,微博的標(biāo)題是用Unicode編碼的,如果直接爬取存儲,將存儲的是Unicode編碼,在這里要感謝大佬—小明哥的幫助,小編在網(wǎng)上搜了好多解決方法都沒有成功,最后一個簡單的函數(shù)就給解決了,實在是佩服!


          解決方案:用eval()來輸出標(biāo)題,就可以將Unicode轉(zhuǎn)換成漢字了。




          推薦閱讀:

          入門: 最全的零基礎(chǔ)學(xué)Python的問題  | 零基礎(chǔ)學(xué)了8個月的Python  | 實戰(zhàn)項目 |學(xué)Python就是這條捷徑


          干貨:爬取豆瓣短評,電影《后來的我們》 | 38年NBA最佳球員分析 |   從萬眾期待到口碑撲街!唐探3令人失望  | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個海量小姐姐素描圖 |碟中諜這么火,我用機器學(xué)習(xí)做個迷你推薦系統(tǒng)電影


          趣味:彈球游戲  | 九宮格  | 漂亮的花 | 兩百行Python《天天酷跑》游戲!


          AI: 會做詩的機器人 | 給圖片上色 | 預(yù)測收入 | 碟中諜這么火,我用機器學(xué)習(xí)做個迷你推薦系統(tǒng)電影


          小工具: Pdf轉(zhuǎn)Word,輕松搞定表格和水??! | 一鍵把html網(wǎng)頁保存為pdf!|  再見PDF提取收費! | 用90行代碼打造最強PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換 | 制作一款釘釘?shù)蛢r機票提示器! |60行代碼做了一個語音壁紙切換器天天看小姐姐!


          年度爆款文案


          點閱讀原文,領(lǐng)廖雪峰視頻資料!

          瀏覽 16
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  骚五月| 亚洲操逼网 | 欧美婷婷六月丁香综合色 | 日韩成人一级片 | se色综合网 |