Python3下模擬登入知乎
程式碼:
# -*- coding:UTF-8 -*- import requests , time import hmac ,json from bs4 import BeautifulSoup from hashlib import sha1 def get_captcha(data,need_cap): ''' 處理驗證碼 ''' if need_cap is False: return with open('captcha.gif','wb') as fb: fb.write(data) return input('captcha:') def get_signature(grantType,clientId,source,timestamp): ''' 處理簽名 ''' hm = hmac.new(b'd1b964811afb40118a12068ff74a12f4',None,sha1) hm.update(str.encode(grantType)) hm.update(str.encode(clientId)) hm.update(str.encode(source)) hm.update(str.encode(timestamp)) return str(hm.hexdigest()) def login(username,password,oncaptcha,sessiona,headers): ''' 處理登入 ''' resp1 = sessiona.get('https://www.zhihu.com/signin',headers=headers) # 拿cookie:_xsrf resp2 = sessiona.get('https://www.zhihu.com/api/v3/oauth/captcha?lang=cn',headers=headers) # 拿cookie:capsion_ticket need_cap = json.loads(resp2.text)["show_captcha"] # {"show_captcha":false} 表示不用驗證碼 grantType = 'password' clientId = 'c3cef7c66a1843f8b3a9e6a1e3160e20' source ='com.zhihu.web' timestamp = str((time.time()*1000)).split('.')[0] # 簽名只按這個時間戳變化 captcha_content = sessiona.get('https://www.zhihu.com/captcha.gif?r=%d&type=login'%(time.time()*1000),headers=headers).content data = { "client_id":clientId, "grant_type":grantType, "timestamp":timestamp, "source":source, "signature": get_signature(grantType,clientId,source,timestamp), # 獲取簽名 "username":username, "password":password, "lang":"cn", "captcha":oncaptcha(captcha_content,need_cap), # 獲取圖片驗證碼 "ref_source":"other_", "utm_source":"" } print("**2**: "+str(data)) print("-"*50) resp = sessiona.post('https://www.zhihu.com/api/v3/oauth/sign_in',data,headers=headers).content print(BeautifulSoup(resp,'html.parser')) print("-"*50) return resp if __name__ == "__main__": sessiona = requests.Session() headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0','authorization':'oauth c3cef7c66a1843f8b3a9e6a1e3160e20'} login('
[email protected]','12345678',get_captcha,sessiona,headers) # 使用者名稱密碼換自己的就好了 resp = sessiona.get('https://www.zhihu.com/inbox',headers=headers) # 登入進去了,可以看私信了 print(BeautifulSoup(resp.content ,'html.parser')) ### chcp 65001 (win下改變cmd字符集) ### python c:\python34\login_zhihu.py ### 有非常無語的事情發生,還以為程式碼沒生效
小編準備了一份Python的最新系統資料,548-377-875 都在這個群裡了~
相關推薦
Python3下模擬登入知乎
程式碼: # -*- coding:UTF-8 -*- import requests , time import hmac ,json from bs4 import BeautifulSoup from hashlib import sha1 def get_
Python3 模擬登入知乎(requests)
# -*- coding: utf-8 -*- """ 知乎登入分為兩種登入 一是手機登入 API : https://www.zhihu.com/login/phone_num 二是郵箱登入 API : https://www.zhihu.c
python--python3爬蟲之模擬登入知乎
程式碼在python3環境下測試通過: from bs4 import BeautifulSoup import requests url = 'http://www.zhihu.com' login_url = url+'/login/email' captcha_
selenium 模擬登入知乎和微博
sleep https epo element select selenium clas .com -c pip install selenium __author__ = ‘admin‘ __date__ = 2017 / 11 / 3 from selenium im
爬蟲入門到精通-headers的詳細講解(模擬登入知乎)
直接開始案例吧。 本次我們實現如何模擬登陸知乎。 1.抓包 首先開啟知乎登入頁 知乎 - 與世界分享你的知識、經驗和見解 注意開啟開發者工具後點擊“preserve log”,密碼記得故意輸入錯誤,然後點選登入 我們很簡單的就找到了 我們需要的請
selenium模擬登入知乎
Selenium是一個用於Web應用程式測試的工具。Selenium測試直接執行在瀏覽器中,就像真正的使用者在操作一樣。支援的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。這個工具的主
Python 爬蟲-模擬登入知乎-爬取拉勾網職位資訊
用Python寫爬蟲是很方便的,最近看了xlzd.me的文章,他的文章寫的很到位,提供了很好的思路。因為他的文章部分程式碼省略了。下面是基於他的文章的三個程式碼片段: 基於Python3,Python2的話需要修改下input輸入函式和print的用法。 爬取豆瓣電影top250 爬取拉勾網職位資訊 模擬
[Python]網路爬蟲(三):使用cookiejar管理cookie 以及 模擬登入知乎
大家好哈,上一節我們研究了一下爬蟲的異常處理問題,那麼接下來我們一起來看一下Cookie的使用。 為什麼要使用Cookie呢? Cookie,指某些網站為了辨別使用者身份、進行session跟蹤而儲存在使用者本地終端上的資料(通常經過加密) 比如說有些網站需要登入後才
Python 模擬登入知乎
前言 前天看到一個爬取了知乎50多萬評論的帖子, 羨慕的同時也想自己來嘗試一下。看看能不能獲取一些有價值的資訊。 必備知識點 下面簡單的來談談我對常見的防爬蟲的一些技巧的理解。 headers 現在很多伺服器都對爬蟲進行了限制,有一個
python3 requests 模擬登入狀態的兩種方式
python version: 3.6 模擬登入狀態,即有些操作是必須使用者登入後才可以進行的,技術上與cookie和session有關。 cookie是使用者登入後,伺服器返回給客戶端的,客戶端儲存cookie後,用於告訴服務端我是登入過的。 session是後端用以鑑定使用者是
python3 後臺模擬登入
def Form_Data(username,password): data = { ‘username’:username, ‘password’:password } post_data = urllib.parse.urlencode(data).encode(‘utf-8’) ret
Scrapy Selenium實戰:Selenium登入知乎儲存cookies後訪問需要登入頁面
Scrapy Selenium實戰:Selenium登入知乎儲存cookies後訪問需要登入頁面 安裝 chromedriver 新建爬蟲 zhihu.py 獲取瀏覽器真實的User-Agent 執行驗證
python爬蟲模擬登陸知乎網
自從暑假學了大概一個月左右的爬蟲,開學之後就沒怎麼搞爬蟲了,當時也就學到scrapy框架就放下了,大致瞭解了一下框架,不是太理解,但是在這之前本人的爬蟲水平也僅僅侷限於爬取簡單頁面,爬取動態頁面也稍微瞭解下,但是一直沒有學模擬登陸,因為當時怎麼也搞不懂模擬登陸是
requests登入知乎新版
#coding:utf-8 #__author__='wang' import time,json,base64 ''' requests登陸知乎流程: requests登入知乎流程: 1>想到去抓包,檢視使用者名稱,密碼錶單資料的提交地址,也就是POST請求將表單資
Scrapy 模擬登陸知乎--抓取熱點話題
折騰了將近兩天,中間數次想要放棄,還好硬著頭皮搞下去了,在此分享出來,希望有同等需求的各位能少走一些彎路。 原始碼放在了github上, 歡迎前往檢視。 若是幫你解決了問題,或者給了你啟發,不要吝嗇給加一星。 工具準備 在開始之前,請確保 scrpay 正確安裝,手頭有一款簡潔
python requests登入知乎
這裡用python模擬登入知乎,並確定登入的情況:class ZhiHu(object): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0)'
python爬蟲scrapy框架——人工識別登入知乎倒立文字驗證碼和數字英文驗證碼(2)
import scrapy import re import json class ZhihuSpider(scrapy.Spider): name = 'zhihu' allowed_domains = ['www.zhihu.com'] start_urls = ['http
最新,最新!selenium模擬登陸知乎
md知乎的程式猿是幹什麼的我不知道,反爬真不一般,深受其害!!! 試了一千萬種方法,哎,終於呀(千萬不要被知乎的程式猿看到了,要不然就又要涼涼了),其他方法特別是用request的好像都失效了(哪位大神要是還能用告訴兄弟一聲) 算是半手動吧,selenium裡面的js模組
Python爬蟲倒立文字驗證碼登入知乎
引言 本文解析了知乎倒立文字驗證碼的原理,人工識別倒立文字所在位置後組織報文成功登入。 原理 關於登入的基本原理可參考Python爬蟲之模擬知乎登入,只不過這篇文章中登入的驗證碼為“數字英文”模式,而當前登入時是“點選倒立文字”模式,所以主要記錄這部分。
使用OKHttp模擬登陸知乎,兼談OKHttp中Cookie的使用!
本文主要是想和大家探討技術,讓大家學會Cookie的使用,切勿做違法之事!很多Android初學者在剛開始學習的時候,或多或少都想自己搞個應用出來,把自己學的十八般武藝全都用在這個APP上,其實這個想法很好,專案驅動學習,效率更高,這是大學老師教給我的。可是一個APP,如果純