最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?爬取微博熱搜頁(yè)面

 更新時(shí)間:2022年01月26日 11:18:38   作者:小叮當(dāng)?shù)幕孟?  
這篇文章主要介紹了Python?爬取微博熱搜頁(yè)面,關(guān)于Python?爬蟲(chóng),爬取網(wǎng)頁(yè)等相關(guān)內(nèi)容一般可作為小練習(xí),下面文章Python?爬取微博熱搜頁(yè)面也如此,需要的小伙伴可以參考一下

前期準(zhǔn)備:

fiddler 抓包工具
Python3.6
谷歌瀏覽器

分析:

1.清理瀏覽器緩存cookie以至于看到整個(gè)請(qǐng)求過(guò)程,因?yàn)镻ython代碼開(kāi)始請(qǐng)求的時(shí)候不帶任何緩存。
2.不考慮過(guò)多的header參數(shù),先請(qǐng)求一次,看看返回結(jié)果

圖中第一個(gè)鏈接是無(wú)緩存cookie直接訪問(wèn)的,狀態(tài)碼為302進(jìn)行了重定向,用返回值.url會(huì)得到該url后面會(huì)用到(headers里的Referer參數(shù)值)
2 ,3 鏈接沒(méi)有用太大用處為第 4 個(gè)鏈接做鋪墊但是都可以用固定參數(shù)可以不用訪問(wèn)

訪問(wèn)https://passport.weibo.com/visitor/genvisitor ,cookie為tid=__095,注意tid需要去掉轉(zhuǎn)義字符‘\’,get傳的參數(shù)有用的只有t也就是tid 其他都是固定值 、_rand是浮點(diǎn)隨機(jī)數(shù)沒(méi)啥具體的意義可以用Python的random.random()函數(shù),需要導(dǎo)入random庫(kù),get傳參使用params=,post傳參用data=,不是隨便都能用的

得到返回值 含有SUB 和SUBP參數(shù)的值
正好是訪問(wèn)最后一個(gè)鏈接也就是熱搜榜需要的cookie的值
到此分析結(jié)束

代碼:

import requests
import random
import re
import urllib3
#警告忽略
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
class Wb():
? ? def __init__(self):
? ? ?? ?#利用session保持回話
? ? ? ? self.session=requests.Session()
? ? ? ? #清理headers字典,不然update好像不會(huì)起作用
? ? ? ? self.session.headers.clear()

? ? ? ? self.header={
? ? ? ? ? ? "Host": "weibo.com",
? ? ? ? ? ? "Connection": "keep-alive",
? ? ? ? ? ? "Upgrade-Insecure-Requests": "1",
? ? ? ? ? ? "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) "
? ? ? ? ? ? ? ? ? ? ? ? ? "AppleWebKit/537.36 (KHTML, like Gecko) "
? ? ? ? ? ? ? ? ? ? ? ? ? "Chrome/86.0.4240.198 Safari/537.36",
? ? ? ? ? ? "Accept": "text/html,application/xhtml+xml,application/xml;"
? ? ? ? ? ? ? ? ? ? ? "q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,"
? ? ? ? ? ? ? ? ? ? ? "application/signed-exchange;v=b3;q=0.9",
? ? ? ? ? ? "Sec-Fetch-Site": "cross-site",
? ? ? ? ? ? "Sec-Fetch-Mode": "navigate",
? ? ? ? ? ? "Sec-Fetch-Dest": "document",
? ? ? ? ? ? "Accept-Encoding": "gzip, deflate, br",
? ? ? ? ? ? "Accept-Language": "zh-CN,zh;q=0.9",
? ? ? ? }
? ? ? ? #設(shè)置代理如果需要fiddler抓包分析代碼提交的參數(shù)使用下面代理如果不使用選擇下面的代碼self.fiddler_proxies=None
? ? ? ? self.fiddler_proxies = {'http': 'http://127.0.0.1:8888', 'https': 'http://127.0.0.1:8888'}
? ? ? ? # self.fiddler_proxies=None


? ? def get_top_summary(self):
? ? ?? ?#更新添加header ? headers.update只會(huì)覆蓋相同鍵值的值不會(huì)覆蓋全部
? ? ? ? self.session.headers.update(self.header)
? ? ? ? #verify=False 不檢查證書(shū)
? ? ? ? response=self.session.get(url="https://weibo.com/",proxies=self.fiddler_proxies,verify=False)
? ? ? ? print(response.url)
? ? ? ? response.encoding='gbk'
? ? ? ? data1={
? ? ? ? ? ? "cb":"gen_callback",
? ? ? ? ? ? "fp":'{"os":"1","browser":"Chrome86,0,4240,198",'
? ? ? ? ? ? ? ? ?'"fonts":"undefined","screenInfo":"1920*1080*24",'
? ? ? ? ? ? ? ? ?'"plugins":"Portable Document Format::internal-pdf-viewer::'
? ? ? ? ? ? ? ? ?'Chromium PDF Plugin|::mhjfbmdgcfjbbpaeojofohoefgiehjai::'
? ? ? ? ? ? ? ? ?'Chromium PDF Viewer|::internal-nacl-plugin::Native Client"}'
? ? ? ? }
? ? ? ? header1={
? ? ? ? ? ? "Host": "passport.weibo.com",
? ? ? ? ? ? "Cache-Control": "max-age=0",
? ? ? ? ? ? "If-Modified-Since": "0",
? ? ? ? ? ? "Content-Type": "application/x-www-form-urlencoded",
? ? ? ? ? ? "Accept": "*/*",
? ? ? ? ? ? "Origin": "https://passport.weibo.com",
? ? ? ? ? ? "Sec-Fetch-Site": "same-origin",
? ? ? ? ? ? "Sec-Fetch-Mode": "cors",
? ? ? ? ? ? "Sec-Fetch-Dest": "empty",
? ? ? ? ? ? "Referer": response.url,
? ? ? ? }
? ? ? ? self.session.headers.update(header1)
? ? ? ? response1=self.session.post(url="https://passport.weibo.com/visitor/genvisitor"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ,data=data1,proxies=self.fiddler_proxies,verify=False)
? ? ? ? #利用正則表達(dá)式解析tid參數(shù)的值
? ? ? ? t=re.search('{"tid":"(.*)","new_tid"',response1.text).groups()[0]
? ? ? ? data2={
? ? ? ? ? ? "a":"incarnate",
? ? ? ? ? ? "t":t.replace("\\",""),
? ? ? ? ? ? "w": "2",
? ? ? ? ? ? "c": "095",
? ? ? ? ? ? "gc":"",
? ? ? ? ? ? "cb":"cross_domain",
? ? ? ? ? ? "from":"weibo",
? ? ? ? ? ? "_rand":random.random()
? ? ? ? }
? ? ? ? header2={
? ? ? ? ? ? "Sec-Fetch-Mode": "no-cors",
? ? ? ? ? ? "Sec-Fetch-Dest": "script",
? ? ? ? ? ? "Cookie":"tid="+t.replace("\\","")+"__095"
? ? ? ? }
? ? ? ? self.session.headers.update(header2)
? ? ? ? response2 = self.session.get(url="https://passport.weibo.com/visitor/visitor",
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?params=data2,proxies=self.fiddler_proxies,verify=False)
? ? ? ? #從返回值中獲取cookie字典
? ? ? ? cookie = requests.utils.dict_from_cookiejar(response2.cookies)


? ? ? ? header3={
? ? ? ? ? ? "Cookie":"SUB="+cookie["SUB"]+";"+"SUBP="+cookie["SUBP"],
? ? ? ? ? ? "Host": "s.weibo.com",
? ? ? ? ? ? "Upgrade-Insecure-Requests": "1"

? ? ? ? }
? ? ? ? self.session.headers.update(header3)
? ? ? ? response3=self.session.get(url="https://s.weibo.com/top/summary",
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?proxies=self.fiddler_proxies,verify=False)
? ? ? ? # print(response3.text)


if __name__ == '__main__':
? ? wb=Wb()
? ? wb.get_top_summary()

至此只能得到原始的html頁(yè)面,想要進(jìn)一步操作需要在HTML里面提取有用的數(shù)據(jù)。。。。。。
爬蟲(chóng)初期需要更多的是耐心

到此這篇關(guān)于Python 爬取微博熱搜頁(yè)面的文章就介紹到這了,更多相關(guān)Python 爬取微博熱搜頁(yè)面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python3實(shí)現(xiàn)暴力窮舉博客園密碼

    python3實(shí)現(xiàn)暴力窮舉博客園密碼

    這篇文章主要介紹了python3實(shí)現(xiàn)暴力窮舉博客園密碼的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • Python訪問(wèn)本地deepseek示例【含deepseek本地部署】

    Python訪問(wèn)本地deepseek示例【含deepseek本地部署】

    這篇文章主要介紹了Python訪問(wèn)本地deepseek功能,結(jié)合實(shí)例形式分析了使用Ollama本地部署deepseek以及python訪問(wèn)本地deepseek的過(guò)程,需要的朋友可以參考下
    2018-06-06
  • Pygame如何使用精靈和碰撞檢測(cè)

    Pygame如何使用精靈和碰撞檢測(cè)

    本文主要介紹了Pygame如何使用精靈和碰撞檢測(cè),它們能夠幫助我們跟蹤屏幕上移動(dòng)的大量圖像。我們還會(huì)了解如何檢測(cè)兩個(gè)圖像相互重疊或者碰撞的方法。
    2021-11-11
  • python imutils包基本概念及使用

    python imutils包基本概念及使用

    python imutils包可以很簡(jiǎn)潔的調(diào)用opencv接口,輕松實(shí)現(xiàn)圖像的平移,旋轉(zhuǎn),縮放,骨架化等操作,對(duì)python imutils包基本概念及使用方法感興趣的朋友一起看看吧
    2021-07-07
  • Python3多線程詳解

    Python3多線程詳解

    使用多線程,可以同時(shí)進(jìn)行多項(xiàng)任務(wù),可以使用戶界面更友好,還可以后臺(tái)執(zhí)行某些用時(shí)長(zhǎng)的任務(wù),同時(shí)具有易于通信的優(yōu)點(diǎn)。python3中多線程的實(shí)現(xiàn)使用了threading模塊,它允許同一進(jìn)程中運(yùn)行多個(gè)線程,本文介紹的非常詳細(xì),,需要的朋友可以參考下
    2023-05-05
  • python目錄與文件名操作例子

    python目錄與文件名操作例子

    這篇文章主要介紹了python目錄與文件名操作例子,需要的朋友可以參考下
    2016-08-08
  • Python生成可執(zhí)行文件之PyInstaller庫(kù)的使用方式

    Python生成可執(zhí)行文件之PyInstaller庫(kù)的使用方式

    PyInstaller是一個(gè)十分有用的第三方庫(kù),通過(guò)對(duì)源文件打包,Python程序可以在沒(méi)有安裝Python的環(huán)境中運(yùn)行,也可以作為一個(gè)獨(dú)立文件方便傳遞和管理,下面這篇文章主要給大家介紹了關(guān)于Python生成可執(zhí)行文件之PyInstaller庫(kù)的使用方式,需要的朋友可以參考下
    2022-04-04
  • Python類super()及私有屬性原理解析

    Python類super()及私有屬性原理解析

    這篇文章主要介紹了Python類super()及私有屬性原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 關(guān)于阿里云oss獲取sts憑證 app直傳 python的實(shí)例

    關(guān)于阿里云oss獲取sts憑證 app直傳 python的實(shí)例

    今天小編就為大家分享一篇關(guān)于阿里云oss獲取sts憑證 app直傳 python的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 使用matplotlib中scatter方法畫散點(diǎn)圖

    使用matplotlib中scatter方法畫散點(diǎn)圖

    這篇文章主要為大家詳細(xì)介紹了使用matplotlib中scatter方法畫散點(diǎn)圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03

最新評(píng)論

肥西县| 海南省| 崇阳县| 福清市| 衡南县| 三都| 滁州市| 吉木乃县| 乐亭县| 平潭县| 太和县| 宜丰县| 冕宁县| 白玉县| 都匀市| 北流市| 桂平市| 绥棱县| 徐汇区| 文安县| 石林| 建水县| 泰宁县| 漠河县| 巨鹿县| 康乐县| 铜鼓县| 汤原县| 张家港市| 万年县| 庄浪县| 昌黎县| 义马市| 监利县| 合江县| 灵石县| 永济市| 崇文区| 云龙县| 陵川县| 四川省|