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

Python 微信公眾號(hào)文章爬取的示例代碼

 更新時(shí)間:2020年11月30日 08:31:45   作者:稚小白  
這篇文章主要介紹了Python 微信公眾號(hào)文章爬取的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一.思路

我們通過(guò)網(wǎng)頁(yè)版的微信公眾平臺(tái)的圖文消息中的超鏈接獲取到我們需要的接口

圖文消息

超鏈接

從接口中我們可以得到對(duì)應(yīng)的微信公眾號(hào)和對(duì)應(yīng)的所有微信公眾號(hào)文章。

二.接口分析

獲取微信公眾號(hào)的接口:
https://mp.weixin.qq.com/cgi-bin/searchbiz?
參數(shù):
action=search_biz
begin=0
count=5
query=公眾號(hào)名稱(chēng)
token=每個(gè)賬號(hào)對(duì)應(yīng)的token值
lang=zh_CN
f=json
ajax=1
請(qǐng)求方式:
GET
所以這個(gè)接口中我們只需要得到token即可,而query則是你需要搜索的公眾號(hào),token則可以通過(guò)登錄后的網(wǎng)頁(yè)鏈接獲取得到。

微信公眾號(hào)

獲取對(duì)應(yīng)公眾號(hào)的文章的接口:
https://mp.weixin.qq.com/cgi-bin/appmsg?
參數(shù):
action=list_ex
begin=0
count=5
fakeid=MjM5NDAwMTA2MA==
type=9
query=
token=557131216
lang=zh_CN
f=json
ajax=1
請(qǐng)求方式:
GET
在這個(gè)接口中我們需要獲取的值有上一步的token以及fakeid,而這個(gè)fakeid則在第一個(gè)接口中可以獲取得到。從而我們就可以拿到微信公眾號(hào)文章的數(shù)據(jù)了。

微信公眾號(hào)

三.實(shí)現(xiàn)

 第一步:

首先我們需要通過(guò)selenium模擬登錄,然后獲取到cookie和對(duì)應(yīng)的token

def weChat_login(user, password):
  post = {}
  browser = webdriver.Chrome()
  browser.get('https://mp.weixin.qq.com/')
  sleep(3)
  browser.delete_all_cookies()
  sleep(2)
  # 點(diǎn)擊切換到賬號(hào)密碼輸入
  browser.find_element_by_xpath("http://a[@class='login__type__container__select-type']").click()
  sleep(2)
  # 模擬用戶點(diǎn)擊
  input_user = browser.find_element_by_xpath("http://input[@name='account']")
  input_user.send_keys(user)
  input_password = browser.find_element_by_xpath("http://input[@name='password']")
  input_password.send_keys(password)
  sleep(2)
  # 點(diǎn)擊登錄
  browser.find_element_by_xpath("http://a[@class='btn_login']").click()
  sleep(2)
  # 微信登錄驗(yàn)證
  print('請(qǐng)掃描二維碼')
  sleep(20)
  # 刷新當(dāng)前網(wǎng)頁(yè)
  browser.get('https://mp.weixin.qq.com/')
  sleep(5)
  # 獲取當(dāng)前網(wǎng)頁(yè)鏈接
  url = browser.current_url
  # 獲取當(dāng)前cookie
  cookies = browser.get_cookies()
  for item in cookies:
    post[item['name']] = item['value']
  # 轉(zhuǎn)換為字符串
  cookie_str = json.dumps(post)
  # 存儲(chǔ)到本地
  with open('cookie.txt', 'w+', encoding='utf-8') as f:
    f.write(cookie_str)
  print('cookie保存到本地成功')
  # 對(duì)當(dāng)前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
  paramList = url.strip().split('?')[1].split('&')
  # 定義一個(gè)字典存儲(chǔ)數(shù)據(jù)
  paramdict = {}
  for item in paramList:
    paramdict[item.split('=')[0]] = item.split('=')[1]
  # 返回token
  return paramdict['token']

定義了一個(gè)登錄方法,里面的參數(shù)為登錄的賬號(hào)和密碼,然后定義了一個(gè)字典用來(lái)存儲(chǔ)cookie的值。通過(guò)模擬用戶輸入對(duì)應(yīng)的賬號(hào)密碼并且點(diǎn)擊登錄,然后會(huì)出現(xiàn)一個(gè)掃碼驗(yàn)證,用登錄的微信去掃碼即可。
刷新當(dāng)前網(wǎng)頁(yè)后,獲取當(dāng)前cookie以及token然后返回。

第二步:

1.請(qǐng)求獲取對(duì)應(yīng)公眾號(hào)接口,取到我們需要的fakeid

 url = 'https://mp.weixin.qq.com'
  headers = {
    'HOST': 'mp.weixin.qq.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
  }
  with open('cookie.txt', 'r', encoding='utf-8') as f:
    cookie = f.read()
  cookies = json.loads(cookie)
  resp = requests.get(url=url, headers=headers, cookies=cookies)
  search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'
  params = {
    'action': 'search_biz',
    'begin': '0',
    'count': '5',
    'query': '搜索的公眾號(hào)名稱(chēng)',
    'token': token,
    'lang': 'zh_CN',
    'f': 'json',
    'ajax': '1'
  }
  search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)

將我們獲取到的token和cookie傳進(jìn)來(lái),然后通過(guò)requests.get請(qǐng)求,獲得返回的微信公眾號(hào)的json數(shù)據(jù)

lists = search_resp.json().get('list')[0]

通過(guò)上面的代碼即可獲取到對(duì)應(yīng)的公眾號(hào)數(shù)據(jù)

fakeid = lists.get('fakeid')

通過(guò)上面的代碼就可以得到對(duì)應(yīng)的fakeid

2.請(qǐng)求獲取微信公眾號(hào)文章接口,取到我們需要的文章數(shù)據(jù)

 appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
  params_data = {
    'action': 'list_ex',
    'begin': '0',
    'count': '5',
    'fakeid': fakeid,
    'type': '9',
    'query': '',
    'token': token,
    'lang': 'zh_CN',
    'f': 'json',
    'ajax': '1'
  }
  appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)

我們傳入fakeid和token然后還是調(diào)用requests.get請(qǐng)求接口,獲得返回的json數(shù)據(jù)。
我們就實(shí)現(xiàn)了對(duì)微信公眾號(hào)文章的爬取。

四.總結(jié)

通過(guò)對(duì)微信公眾號(hào)文章的爬取,需要掌握selenium和requests的用法,以及如何獲取到請(qǐng)求接口。但是需要注意的是當(dāng)我們循環(huán)獲取文章時(shí),一定要設(shè)置延遲時(shí)間,不然賬號(hào)很容易被封禁,從而得不到返回的數(shù)據(jù)。

到此這篇關(guān)于Python 微信公眾號(hào)文章爬取的示例代碼的文章就介紹到這了,更多相關(guān)Python 微信公眾號(hào)文章爬取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python面向?qū)ο笾?lèi)和對(duì)象

    Python面向?qū)ο笾?lèi)和對(duì)象

    這篇文章主要為大家介紹了Python類(lèi)和對(duì)象,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • 利用Python命令行傳遞實(shí)例化對(duì)象的方法

    利用Python命令行傳遞實(shí)例化對(duì)象的方法

    最近在工作中遇到了一個(gè)問(wèn)題,需要接收啟動(dòng)腳本傳遞過(guò)來(lái)的實(shí)例化后的對(duì)象,通過(guò)在網(wǎng)上查找資料發(fā)現(xiàn)了兩個(gè)方法,文中通過(guò)實(shí)例代碼就給大家詳細(xì)介紹了這兩種方法,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-11-11
  • Python實(shí)現(xiàn)基于標(biāo)記的分水嶺分割算法

    Python實(shí)現(xiàn)基于標(biāo)記的分水嶺分割算法

    分水嶺技術(shù)是一種眾所周知的分割算法,特別適用于提取圖片中的相鄰或重疊對(duì)象。本文將用Python實(shí)現(xiàn)基于標(biāo)記的分水嶺分割算法,感興趣的可以了解一下
    2022-07-07
  • Pycharm中的下載安裝、配置與測(cè)試方式

    Pycharm中的下載安裝、配置與測(cè)試方式

    這篇文章主要介紹了Pycharm中的下載安裝、配置與測(cè)試方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python使用IPython調(diào)試debug程序

    python使用IPython調(diào)試debug程序

    這篇文章主要為大家介紹了python使用IPython調(diào)試debug程序詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python sklearn數(shù)據(jù)預(yù)處理之正則化詳解

    python sklearn數(shù)據(jù)預(yù)處理之正則化詳解

    數(shù)據(jù)的預(yù)處理是數(shù)據(jù)分析,或者機(jī)器學(xué)習(xí)訓(xùn)練前的重要步驟,這篇文章主要為大家詳細(xì)介紹了sklearn數(shù)據(jù)預(yù)處理中正則化的相關(guān)知識(shí),需要的可以參考下
    2023-10-10
  • python 生成目錄樹(shù)及顯示文件大小的代碼

    python 生成目錄樹(shù)及顯示文件大小的代碼

    沒(méi)啥技術(shù)含量,大家都說(shuō)沒(méi)用,只不過(guò)算法還有點(diǎn)意思。自己憋出來(lái)的,不知道是不是跟別人的一樣。做遞歸得到子文件夾以及文件并不難,但是能夠打印出樹(shù)形,層次關(guān)系展示出來(lái),有些難度。
    2009-07-07
  • Python中的元類(lèi)編程入門(mén)指引

    Python中的元類(lèi)編程入門(mén)指引

    這篇文章主要介紹了Python中的元類(lèi)編程入門(mén)指引,來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • PyQt5 QListWidget選擇多項(xiàng)并返回的實(shí)例

    PyQt5 QListWidget選擇多項(xiàng)并返回的實(shí)例

    今天小編就為大家分享一篇PyQt5 QListWidget選擇多項(xiàng)并返回的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Pycharm設(shè)置utf-8自動(dòng)顯示方法

    Pycharm設(shè)置utf-8自動(dòng)顯示方法

    今天小編就為大家分享一篇Pycharm設(shè)置utf-8自動(dòng)顯示方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論

嘉定区| 体育| 陵水| 丰台区| 双江| 桃江县| 南城县| 南通市| 镇原县| 新化县| 旅游| 上杭县| 库车县| 伊通| 宁海县| 云霄县| 镇雄县| 汾阳市| 巴东县| 胶州市| 平罗县| 尼玛县| 屏山县| 新巴尔虎左旗| 鹿泉市| 黄骅市| 海安县| 葫芦岛市| 郴州市| 塘沽区| 桑日县| 普宁市| 茌平县| 平安县| 泰安市| 板桥市| 阆中市| 营口市| 仁寿县| 盐池县| 罗山县|