日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pc端客户端爬虫_爬虫微博模拟登陆-从移动端到PC端

發(fā)布時間:2024/1/8 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pc端客户端爬虫_爬虫微博模拟登陆-从移动端到PC端 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

爬蟲登陸微博,相信是諸多爬蟲愛好者必須跨過得一道坎。這不,這幾天我也在研究如何能夠快速而簡潔得實現(xiàn)登陸功能。

當(dāng)然,前期工作一定要做好,我先google + 百度了一把市面上的微博登陸教程,發(fā)現(xiàn)基本上都是PC端的base64加密用戶名,然后RSA加密拼接關(guān)鍵信息,最后組合成POST的from data 進(jìn)行登陸。

擺在我面前的有兩條路,一條走PC端,一條走移動端。鑒于PC端已經(jīng)有詳盡教程,此時,我決定走一走移動端的路子。基于以往經(jīng)驗,任何網(wǎng)站如果有移動端,那一定是非常容易進(jìn)行爬取的。果不其然,移動端的微博登陸比我想象得還要簡單,一個簡單的POST即可搞定。

與此同時,在抓包的過程中,我亦發(fā)現(xiàn),微博在移動端登陸以后,會先訪問3個cross domain的網(wǎng)址來設(shè)置cookie。此刻,請大家注意,經(jīng)過這三個cross domain的設(shè)置后,我們居然可以直接以登陸狀態(tài)訪問PC端。即在技術(shù)上以移動端作為翹板,完美避開PC端復(fù)雜的校驗和加密。

曲線救國,古之人誠不我欺也!

Talk is cheap. Show me the code。

#-*- coding=utf-8

from requests import Session

import json

def formatUrl(urldict):

for key,value in urldict.items():

urldict[key]=value.replace("\\",'')

headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',

'Referer':'https://passport.weibo.cn/signin/login?entry=mweibo'}

cookies={'_s_tentry':'news.ifeng.com',

'UOR':'news.ifeng.com,widget.weibo.com,tech.ifeng.com'}

url='https://passport.weibo.cn/sso/login'

username=input('pls input weibo ID: ')

pwd =input('pls input weibo password: ')

fromdata={'username':username,'password':pwd,

'savestate':'1','r':None,'ec':'0','pagerefer':None,

'entry':'mweibo','wentry':None,'loginfrom':None,

'client_id':None,'code':None,'qq':None,'mainpageflag':'1',

'hff':None,'hfp':None}

with Session() as s:

s.headers.update(headers)

resp = s.post(url,data=fromdata)

cross_domain_list = json.loads(resp.text)['data']['crossdomainlist']

formatUrl(cross_domain_list)

s.get(cross_domain_list['weibo.com'],cookies=cookies)

#通過cross_domain 獲取PC端的登陸狀態(tài),此時可以以登錄狀態(tài)直接訪問PC端的頁面,從而繞過諸多加密校驗

s.get(cross_domain_list['sina.com.cn'])

s.get(cross_domain_list['weibo.cn'])

s.headers.update({'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'})

resp=s.get('https://weibo.com/')

with open('webo.html','wb') as f:

f.write(resp.content)

我宣布:微博的世界, 爬蟲大軍來啦!

注:如果需要鍛煉JS解析能力,建議還是走PC端模擬登陸。

總結(jié)

以上是生活随笔為你收集整理的pc端客户端爬虫_爬虫微博模拟登陆-从移动端到PC端的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。