[英]How to get a raw data from Pastebin with password?
我想使用 python 的某個鎖定的 pastebin 鏈接的密碼獲取原始數據。我不知道該怎么做。
使用python的requests模塊和post方法獲取pastebin原始數據是不可能的嗎? 我按照下面的代碼嘗試了它,但它返回錯誤。
url = "https://pastebin.com/URL"
pass_data = {'PostPasswordVerificationForm[password]': 'password'}
res = requests.post(url, headers=headers, data = pass_data)
text = res.text
print(text)
它返回以下錯誤:
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='pastebin.com', port=443):
Max retries exceeded with url: /URL (Caused by SSLError(SSLCertVerificationError
(1, '[SSL: CERTIFICATE_VERIFY_FAILED]certificate verify failed:
self signed certificate in certificate chain (_ssl.c:1123)')))
有人可以告訴我我可以使用哪個嗎?
注意:考慮使用Pastebin 的 API和Pastebin 的抓取 API 。
您的證書驗證失敗(proxy/tor/vpn/web without cert/misconfigured web?)。 如果您仍想繼續,只需使用verify=False
作為requests.post()
的參數:
requests.post(url="...", verify=False)
如果您使用的是 VPN,也許已經為您的機器提供了根證書,您可以使用cert=("path to cert", "path to key")
來應用它。
如果您使用的是 Tor,最好跳過該電路並重新創建一個新電路。
對於代理,它很復雜,可能是證書問題,也可能只是配置錯誤/損壞。
您可以通過檢查您的網絡會話(特定於操作系統)和環境變量requests
package 來驗證沒有使用代理:
http_proxy
HTTP_PROXY
https_proxy
HTTPS_PROXY
curl_ca_bundle
編輯:我剛剛重新檢查了 Pastebin,RAW 文本選項僅適用於未受保護的粘貼。 但是,您可以通過檢查流量獲得 HTML 版本,然后只需保留 session,檢查 cookies 和 .network 選項卡中的標頭,即可使用代碼重新組裝它。 你應該得到這樣的東西:
import requests as r
ses = r.Session()
cookie = ses.get("https://pastebin.com").cookies["_csrf-frontend"]
# The missing step here is reworking the provided CSRF by client-side
# JS which is "hidden" in the minified jquery.min.js (or at least the
# `POST` is issued by it). Once you have it, you can put it to the
# data field
print(ses.post(
url='https://pastebin.com/<your paste>',
headers={
'User-Agent': "<user agent to spoof it's via Requests>",
'Accept': (
'text/html'
',application/xhtml+xml'
',application/xml'
';q=0.9,image/webp,*/*;q=0.8'
),
'Accept-Language': 'en-US,en;q=0.5',
'Content-Type': 'application/x-www-form-urlencoded'
},
data=(
'_csrf-frontend=<JS-manipulated CSRF value>'
'&is_burn=1'
'&PostPasswordVerificationForm%5Bpassword%5D=<pass>'
)
).text)
之后只需檢查其中包含RAW
的標簽,然后通過一些快速正則表達式(強制性的“這是一個愚蠢的想法”帖子)或使用不太容易出錯的解決方案(例如BeautifulSoup )對其進行解析。
盡管如此,驗證碼、IP 黑名單、“聰明”的 CSRF 處理和類似的東西最終會阻止你進行這種抓取,如果不是這樣的話,組裝一個應用程序太容易了,它會動態地改變 Angular 中的 class 名稱、標簽名稱等,只是為了搞砸用你的 lulz 抓取(谷歌文檔喜歡這個東西,個人經驗),所以如果你打算用它做一些嚴肅的事情,只需使用 API。
Edit2:關於抓取的小常見問題解答/為什么要使用 API
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.