首页 > 解决方案 > 需要帮助从动态网站检索网站密钥

问题描述

我正在使用 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')

标签: pythonhtmlbeautifulsoup

解决方案


我不确定这是否是您所追求的。要获取 recaptcha内部的值,iframe因此您必须定位该srciframe并使用 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'])

推荐阅读