1. 程式人生 > >Python3 模擬登入知乎(requests)

Python3 模擬登入知乎(requests)

# -*- coding: utf-8 -*-

""" 知乎登入分為兩種登入
    一是手機登入 API : https://www.zhihu.com/login/phone_num
    二是郵箱登入 API : https://www.zhihu.com/login/email

    第一步、開啟首頁獲取_xref值,驗證圖片
    第二步、輸入賬號密碼
    第三步、看是否需要驗證、要則下載驗證碼圖片,手動輸入
    第四步、判斷是否登入成功、登入成功後獲取頁面值。

    requests 與 http.cookiejar 相結合使用
    session = requests.session()
    session.cookies = http.cookiejar.LWPCookies(filename='abc')
    ...
    請求網址後
    ...
    session.cookies.save()  儲存cookies

    載入cookies
    try:
        session.cookies.load(ignore_discard=True)
    except:
        print('沒有cookies')
"""
import requests from bs4 import BeautifulSoup as BS import time from subprocess import Popen # 開啟圖片 import http.cookiejar import re # 模擬瀏覽器訪問 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36' } home_url = "https://www.zhihu.com"
base_login = "https://www.zhihu.com/#signin/" # 一定不能寫成http,否則無法登入 session = requests.session() session.cookies = http.cookiejar.LWPCookieJar(filename='ZhiHuCookies') try: # 載入Cookies檔案 session.cookies.load(ignore_discard=True) except: print("cookie未儲存或cookie已過期") # 第一步 獲取_xsrf _xsrf = BS(session.get(home_url, headers=headers).text, "lxml"
).find("input", {"name": "_xsrf"})["value"] # 第二步 根據賬號判斷登入方式 account = input("請輸入您的賬號:") password = input("請輸入您的密碼:") # 第三步 獲取驗證碼圖片 gifUrl = "http://www.zhihu.com/captcha.gif?r=" + str(int(time.time() * 1000)) + "&type=login" gif = session.get(gifUrl, headers=headers) # 儲存圖片 with open('code.gif', 'wb') as f: f.write(gif.content) # 開啟圖片 Popen('code.gif', shell=True) # 輸入驗證碼 captcha = input('captcha: ') data = { "captcha": captcha, "password": password, "_xsrf": _xsrf, } # 第四步 判斷account型別是手機號還是郵箱 if re.match("^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$", account): # 郵箱 data["email"] = account base_login = base_login + "email" else: # 手機號 data["phone_num"] = account base_login = base_login + "phone_num" print(data) # 第五步 登入 response = session.post(base_login, data=data, headers=headers) print(response.content.decode("utf-8")) # 第六步 儲存cookie session.cookies.save() # 獲取首頁資訊 resp = session.get(home_url, headers=headers, allow_redirects=False) print(resp.content.decode("utf-8"))

相關推薦

Python3 模擬登入requests

# -*- coding: utf-8 -*- """ 知乎登入分為兩種登入 一是手機登入 API : https://www.zhihu.com/login/phone_num 二是郵箱登入 API : https://www.zhihu.c

爬蟲入門到精通-headers的詳細講解模擬登入

直接開始案例吧。 本次我們實現如何模擬登陸知乎。 1.抓包 首先開啟知乎登入頁 知乎 - 與世界分享你的知識、經驗和見解 注意開啟開發者工具後點擊“preserve log”,密碼記得故意輸入錯誤,然後點選登入   我們很簡單的就找到了 我們需要的請

[Python]網路爬蟲:使用cookiejar管理cookie 以及 模擬登入

大家好哈,上一節我們研究了一下爬蟲的異常處理問題,那麼接下來我們一起來看一下Cookie的使用。 為什麼要使用Cookie呢? Cookie,指某些網站為了辨別使用者身份、進行session跟蹤而儲存在使用者本地終端上的資料(通常經過加密) 比如說有些網站需要登入後才

python爬蟲項目新手教程requests方式

ror eas 點擊 elif 原因 ffffff 文章 重點 F12 -前言 之前一直用scrapy與urllib姿勢爬取數據,最近使用requests感覺還不錯,這次希望通過對知乎數據的爬取為 各位爬蟲愛好者和初學者更好的了解爬蟲制作的準備過程以及requests請求方

python--python3爬蟲之模擬登入

程式碼在python3環境下測試通過: from bs4 import BeautifulSoup import requests url = 'http://www.zhihu.com' login_url = url+'/login/email' captcha_

Python3模擬登入

程式碼: # -*- coding:UTF-8 -*- import requests , time import hmac ,json from bs4 import BeautifulSoup from hashlib import sha1 def get_

selenium 模擬登入和微博

sleep https epo element select selenium clas .com -c pip install selenium __author__ = ‘admin‘ __date__ = 2017 / 11 / 3 from selenium im

Scrapy分布式爬蟲打造搜索引擎慕課網--爬取

false pat 模塊 text 文件的 服務 協議 .py execute 通過Scrapy模擬登陸知乎 通過命令讓系統自動新建zhihu.py文件 首先進入工程目錄下 再進入虛擬環境 通過genspider命令新建zhihu.py scrap

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 爬取拉勾網職位資訊 模擬

pyhon3模擬登入百度2—— 使用IE11理清百度登入內部邏輯和分析請求傳送資料

依照思路來,第一步就是難點和重點,搞清楚了網頁登入的內部邏輯,才能進行下一步的模擬登入。 這裡,我的瀏覽器是IE11。因為已經看了一篇手把手教學分析登入邏輯的文章,所以這裡寫的要節省多了。 通過分析發現登入的網址是https://passport.baidu.com

Python 模擬登入

前言 前天看到一個爬取了知乎50多萬評論的帖子, 羨慕的同時也想自己來嘗試一下。看看能不能獲取一些有價值的資訊。 必備知識點 下面簡單的來談談我對常見的防爬蟲的一些技巧的理解。 headers 現在很多伺服器都對爬蟲進行了限制,有一個

python3模擬登陸人人網史上最簡單用requests

之前看別人一直模擬登陸人人網,我就想人人網有頭有臉的咋那麼好模擬登陸進去呢,,今天看了下發現真的超級容易登陸,可能人人太老了也好久不更新了吧。人人網一點防護措施都沒有,沒有驗證碼,沒有加密,沒有亂起八

模擬登陸改版後的最新版

今天,想著看看視訊,把模擬登陸這一塊學習學習,以後弄把梯子,去爬爬FaceBook什麼的。就拿知乎練練手吧,可曾想,知乎竟然改版了!!之前的教程書籍對現在的知乎來說,都是扯淡,連頁面都找不到了。下面一起談談改版後的紙糊的模擬登陸吧。 頁面分析

python3requests使用代理ip

當需要採集大量資料時,或者有的網站對訪問速度特別嚴格的時候,有的網站就採取封ip,這樣就需要使用代理ip。就像馬蜂窩一樣,,自從被曝資料造假之後,就不好爬了,python使用代理ip的小demo為: import requests from bs4 import Be

【2018.05.11】python3.6+selenium 自動登入+驗證碼 問題

時隔這麼多年,驗證碼問題我解決了,這裡也能寫下,我就是懶得寫。哈哈   #coding = utf-8 ''' 自動登入知乎 出現了驗證碼的問題,待解決...... ''' import time from selenium import webdriver driver = w

面試總結+京東

知乎面試問題 一面 演算法題 兩個有序陣列,輸出第k小的數字 思想時:分別折半查詢,每個陣列記錄自己的left,right索引,進行查詢。 hashmap 原始碼結構 hashmap在擴容時空間建立+新舊節點的對應關係+如果擴容過程中查

寫一手好字:硬筆書法輕鬆自學指南週刊 Plus-讀書筆記

寫一手好字:硬筆書法輕鬆自學指南(知乎週刊 Plus) 知乎編輯團隊  楷書,認知好字的範本  2017-03-16 《黃自元間架結構九十二法》  選本好字帖  2017-03-16 先談書體。 前人對練習書法的程式,各有主張。有的認為應由書體起源篆—隸—楷—行—草的演變

requests登入新版

#coding:utf-8 #__author__='wang' import time,json,base64 ''' requests登陸知乎流程: requests登入知乎流程: 1>想到去抓包,檢視使用者名稱,密碼錶單資料的提交地址,也就是POST請求將表單資

python requests登入

這裡用python模擬登入知乎,並確定登入的情況:class ZhiHu(object): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0)'