使用python请求和美汤拉文本

Posted

技术标签:

【中文标题】使用python请求和美汤拉文本【英文标题】:Using python requests and beautiful soup to pull text 【发布时间】:2017-02-07 01:00:13 【问题描述】:

感谢您查看我的问题。我想知道是否有任何方法可以从该文本中提取数据站点密钥...这是页面的网址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&amp;co=aHR0cHM6Ly9lLWNvbS5zZWN1cmUuZm9yY2UuY29tOjQ0Mw..&amp;hl=en&amp;type=image&amp;v=r20160921114513&amp;size=normal&amp;cb=ei2ddcb6rl03" title="recaptcha widget"   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

【问题讨论】:

到目前为止你的代码在哪里?有 100% 的方法,但很高兴看到你迄今为止的努力。 @PadraicCunningham 更新 @jonrsharpe 更新 ... “它到底有什么问题?”给minimal reproducible example。 【参考方案1】:

好的,现在我们有了代码,就这么简单:

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 是一个 attribute不是 一个 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来采集陪玩数据,看看行情和美照

Presto实现原理和美团的使用实践

Banner信息收集和美杜莎使用(9.26 第十二天)

使用 Beautiful Soup 从非类部分获取数据

使用 BeautifulSoup 和 Python 获取元标记内容属性

百度和美团offer哪个好