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什麼的。就拿知乎練練手吧,可曾想,知乎竟然改版了!!之前的教程書籍對現在的知乎來說,都是扯淡,連頁面都找不到了。下面一起談談改版後的紙糊的模擬登陸吧。 頁面分析
python3(requests)使用代理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)'