2016-10-06 4 views
-2

Я пытаюсь получить div HTML от https://www.workday.com/en-us/company/careers/open-positions.html#?q=.python Получить HTML из JS, используя selenium

Но служебные должности листинга div загружаются с granite.min.js на основе сети XHR.

from selenium import webdriver 
from bs4 import BeautifulSoup 
from pprint import pprint 


path_to_chromedriver = "/Users/RichWin/Documents/chromedriver.exe" 
browser = webdriver.Chrome(executable_path=path_to_chromedriver) 

driver = browser.get('https://www.workday.com/en-us/company/careers/open-positions.html#?q=') 

elem = driver.find_element_by_id('template-content') 

soup = BeautifulSoup(elem.get_text, "html.parser") 

for tag in soup.find_all('div'): 
    pprint(tag) 

Может ли кто-нибудь мне помочь?

+1

Пожалуйста, обновите вопрос по следующему адресу: http://stackoverflow.com/help/how-to-ask – dm295

+0

Что случилось с моим вопросом? –

+0

Никто не собирается делать для вас работу -> необходимо сделать доказательства доказательств, т. Е. Показать нам код, с которым вы столкнулись с – dm295

ответ

1

Хорошо, поэтому у вашего кода есть несколько проблем.

a) вам необходимо подождать, пока загрузите его содержимое. template-content div. В приведенном ниже коде я использую implicitly_wait, чтобы подождать 30 секунд.
b) find_element_by_id не возвращается HTML, но Selenium объект. Поэтому вы не можете передать его BeautifulSoup для разбора.

from pprint import pprint 
from bs4 import BeautifulSoup 
from selenium import webdriver 


url = 'https://www.workday.com/en-us/company/careers/open-positions.html#?q=' 
path_to_chromedriver = "/Users/RichWin/Documents/chromedriver.exe" 

browser = webdriver.Chrome(executable_path=path_to_chromedriver) 
browser.implicitly_wait(30) 
browser.get(url) 

elem = browser.find_element_by_id('template-content') 
elem_html = elem.get_attribute('innerHTML') 

soup = BeautifulSoup(elem_html, "html.parser") 
for tag in soup.find_all('div'): 
    pprint(tag) 

browser.quit() 
+0

oh. поэтому он сказал: AttributeError: объект «NoneType» не имеет атрибута «find_element_by_class_name» большое вам спасибо! –

+0

не проблема, не стесняйтесь принять ответ: http://stackoverflow.com/help/someone-answers – dm295

+0

как я могу принять этот ответ? Я здесь новенький. –

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