python - 需要帮助从动态网站检索网站密钥
问题描述
我正在使用 Pycharm 创建一个自动帐户创建者。我面临一个尚未找到好的解决方案的问题。我想获取站点密钥,以便将验证码传递给我购买的服务。我使用了 requests.get 方法,但结果返回“无”。我在我的程序中使用硒。经过一番思考,我意识到使用 requests.get 方法,如果它有效,会给我带来一个与我的硒驱动程序当前显示的不同的键。我搜索了很多,发现只有一个名为Selenium-Requests的模块没有导入 Edge。我正在使用 Edge,因为它是每个人都拥有的唯一浏览器,并且不需要像 Chrome 和 Firefox 那样的开发者版本。通常,我还没有找到可以帮助我在驱动程序中检索密钥的修复程序。这是检索代码:
registerurl = requests.get(url)
registerurlstring = ''.join(str(e) for e in registerurl)
soup = BeautifulSoup(registerurlstring, features="html5lib")
hidden_tags = soup.find({"id":"recaptcha-token"})
sitekey = hidden_tags
try:
print('Sitekey = ', sitekey)
except:
print('Sitekey = Not Found')
解决方案
我不确定这是否是您所追求的。要获取 recaptcha
内部的值,iframe
因此您必须定位该src
值iframe
并使用 python请求模块,您可以获得该输入的值。
import requests
from bs4 import BeautifulSoup
url='https://www.google.com/recaptcha/api2/anchor?ar=1&k=6Lc3HAsUAAAAACsN7CgY9MMVxo2M09n_e4heJEiZ&co=aHR0cHM6Ly9zaWdudXAuZXVuZS5sZWFndWVvZmxlZ2VuZHMuY29tOjQ0Mw..&hl=en&v=A1Aard-wURuGsXRGA7JMOqVO&theme=dark&size=invisible&badge=bottomright&cb=ezyy1frci5ms'
registerurl = requests.get(url)
soup = BeautifulSoup(registerurl.text, features="html5lib")
hidden_tags = soup.find('input' ,attrs={"id":"recaptcha-token"})
print(hidden_tags['value'])
输出:
03AOLTBLQFd9hdHGmOesrT0xDcA8MkI6FGIiM3892Uws3aEWzPxUT8-U8IBEZHYzUEba2Jp9m3s9z_sz_fuij9OXZHABulFrI8YCD95kXV_H6xTO9vOubuZfzscleb6fdkkAE3IwUUSdTzPbXILy6SGLPI3LpPUptC1enZLIkQxQq9T8AEPPvCIsVgGe4jSE_l1jCWIRmBeBXsLgPLABZSq6ah6QWFfAngdC1rQaLMKWzLBmzh6ytEEGNYHmEG7P6UVtYcTI1IRIvq-ba-oGIUS1ELUb-1d3upQ29JWBtQ2t7_VNn237fguztf_FUDEHnAfHppUsrz-ZlkE00sMXFCuQ1XF6Qz7lH2j5g2z5KZQiODhRUBRRyd-ydjetz053bKRcgWpnNoZGNf1GBlW5inL9AtyYTkpruttw5sruAPuVgs5mrniQ5hrHNvfDIZKX905T2E21W2DsW1_07rItFYa-zkylMU83YXRQ
希望这可以帮助。
更新代码以iframe
src
使用webdriver
.
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://signup.eune.leagueoflegends.com/en/signup/index")
url=driver.find_element_by_css_selector("iframe[role='presentation']").get_attribute('src')
registerurl = requests.get(url)
soup = BeautifulSoup(registerurl.text, features="html5lib")
hidden_tags = soup.find('input' ,attrs={"id":"recaptcha-token"})
print(hidden_tags['value'])
推荐阅读
- ruby-on-rails - ld:安装包时找不到 -l-lruby.1.9.1 的库
- java - Glide的Android图像下载问题
- javascript - 如何从使用封闭模式创建的影子根中查询选择
- javascript - React:大日历字体样式
- angularjs - 如何在 AngularJS 中使用 $interpolate 保留字符串的不可插值部分
- xamarin.forms - 具有完整功能的 Xamarin 表单位置
- django - 从子视图访问祖父母数据
- javascript - 无法在我的 iOS 设备上安装反应原生应用程序
- c++ - 使用 cmake 链接外部库
- sql - MSSQL 使用 table2 中的条件将 table2 中的值插入 table1