2016-09-28 4 views
4

спасибо, что посмотрели мою проблему. я хотел бы знать, есть ли способ вытащить данные из-sitekey этого текста ... вот гиперссылка на страницу https://e-com.secure.force.com/adidasUSContact/Использование запросов python и красивого супа для вытягивания текста

<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" 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 
+0

Где ваш код до сих пор? Существует 100 процентов пути, но было бы неплохо увидеть ваши усилия до сих пор. –

+1

@PadraicCunningham обновленный –

+0

@jonrsharpe обновленный –

ответ

6

Ok Теперь у нас есть код, это так просто, как:

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"] 

данные sitekey является атрибутом, не a 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"] 
+0

ОК, позвольте мне попробовать. –

+0

@Tonysanchez, это определенно будет работать;) –

+0

работал, но он рассказывал мне что-то о разметке –

 Смежные вопросы

  • Нет связанных вопросов^_^