感谢您查看我的问题。我想知道是否有任何方法可以从本文中提取数据站点 key ...这是页面的 url https://e-com.secure.force.com/adidasUSContact/
<div class="g-recaptcha" data-sitekey="6LfI8hoTAAAAAMax5_MTl3N-5bDxVNdQ6Gx6BcKX" data-type="image" id="ncaptchaRecaptchaId"><div style="width: 304px; height: 78px;"><div><iframe src="https://www.google.com/recaptcha/api2/anchor?k=6LfI8hoTAAAAAMax5_MTl3N-5bDxVNdQ6Gx6BcKX&co=aHR0cHM6Ly9lLWNvbS5zZWN1cmUuZm9yY2UuY29tOjQ0Mw..&hl=en&type=image&v=r20160921114513&size=normal&cb=ei2ddcb6rl03" title="recaptcha widget" width="304" height="78" role="presentation" frameborder="0" scrolling="no" name="undefined"></iframe></div><textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none; display: none; "></t
这是我当前的代码
import requests
from bs4 import BeautifulSoup
headers = {
'Host' : 'e-com.secure.force.com',
'Connection' : 'keep-alive',
'Upgrade-Insecure-Requests' : '1',
'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64)',
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding' : 'gzip, deflate, sdch',
'Accept-Language' : 'en-US,en;q=0.8'
}
url = 'https://e-com.secure.force.com/adidasUSContact/'
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r, 'html.parser')
c = soup.find_all('div', attrs={"class": "data-sitekey"})
print c
最佳答案
好的,现在我们有了代码,它很简单:
import requests
from bs4 import BeautifulSoup
soup = BeautifulSoup(requests.get("https://e-com.secure.force.com/adidasUSContact/").content, "html.parser")
key = soup.select_one("#ncaptchaRecaptchaId")["data-sitekey"]
data-sitekey 是一个属性,不是 css 类,因此您只需要从元素,您可以通过它的 id 找到该元素,如上所示。
你也可以使用类名:
# css selector
key = soup.select_one("div.g-recaptcha")["data-sitekey"]
# regular find using class name
key = soup.find("div",class_="g-recaptcha")["data-sitekey"]
关于python - 使用python requests和beautiful soup拉取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39757805/