我想使用密码从python的某个锁定的pastebin链接获取原始数据。我不知道该怎么办。
使用python的请求模块和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)')))
有人能告诉我我能用哪一种吗?
1条答案
按热度按时间mccptt671#
注意:考虑使用巴斯丁的API和巴斯丁的刮擦API。
您的证书验证失败(代理/tor/vpn/web无证书/web配置错误?)。如果仍要继续,只需使用
verify=False
作为requests.post()
:如果您使用的是vpn,那么可能已经为您的计算机提供了根证书,您可以使用
cert=("path to cert", "path to key")
.如果您正在使用tor,最好跳过该回路,重新创建一个新回路。
对于代理来说,这很复杂,可能是证书问题,也可能只是配置错误/损坏。
通过检查网络会话(特定于操作系统)和环境变量,可以验证没有使用代理
requests
软件包与以下软件包一起工作:http_proxy
HTTP_PROXYhttps_proxy
HTTPS_PROXYcurl_ca_bundle
编辑:我刚刚重新选中了pastebin,原始文本选项仅适用于未受保护的粘贴。但是,您可以通过检查流量,然后通过保持会话、检查网络选项卡中的Cookie和标头,用代码重新组装流量,从而获得html版本。你应该得到这样的东西:之后,只需使用
RAW
然后通过一些快速正则表达式(强制性的“这是一个愚蠢的想法”帖子)或使用一个不太容易出错的解决方案(如beautifulsoup)对其进行解析。尽管如此,CAPTCHA、ip黑名单、“聪明的”csrf处理和类似的东西最终会阻止你进行这种刮取,如果不是的话,组装一个应用程序,动态地改变它的类名、标记名等,只是为了搞乱你对lulz的刮取(谷歌文档喜欢这种东西,因此,如果您打算对其进行严肃处理,只需使用api即可。
edit2:有关刮取/为什么使用api的次要常见问题解答
如果网站不允许刮擦或者在tos中禁止刮擦,你就不应该这么做。尽管人们大多忽略了它,但从非anon设备/ip上做这件事并不明智,特别是如果有一个从中赚钱的想法,因为人们开始寻找(即使是合法的)。
不,tor不起作用,尤其是因为它一进去就充满了验证码。
是的,任何一个至少有一点读取服务器日志能力的人都可以知道你将要做什么,并通过ip、用户代理阻止你,或者只是通过提供随机数据来干扰你(做到了这一点,稍后查看流量日志非常有趣:d)
是的,甚至VPN和代理也可以被阻止,就像tor一样,他们只会记录活动并让你付费
一旦pastebin改变了刮擦流的任何部分,您就可以从头开始重新发明它