【发布时间】:2019-06-30 16:00:30
【问题描述】:
我正在尝试使用此代码抓取 HTML 页面:
driver = webdriver.Chrome()
driver.get(url)
try:
element = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.CLASS_NAME,
"myclass")))
html = driver.page_source
soup = bs(html, "lxml")
print(html)
dynamic_text = soup.find_all("div", {"class": "myclass"})
except:
print("Couldnt locate element")
html 页面已打开,但在我的 IDE 控制台中,我看到了异常消息。看起来,没有找到 class_name 为“myclass”的 div。但是,当我检查我得到的 html 页面时,我会在那里看到具有该类名的 div。
HTML 中的 div:
<div role="radio" data-ng-attr-id="{{radioId}}" data-ng-attr-tabindex="{{directToShow === strVm.data.selectedDirectToShow ? '0' : '-1'}}" data-ng-attr-aria-checked="{{directToShow === strVm.data.selectedDirectToShow ? 'true' : 'false'}}" class="trainBasicInfo ng-scope" data-ng-if="directToShow.date == undefined" data-ng-click="strVm.onSelectDirectToShow(directToShow, $event)" data-ng-class="{'active': directToShow === strVm.data.selectedDirectToShow}" id="railRadio_423" tabindex="-1" aria-checked="false">
我在WebDriverWait 中添加了评论,我看到了 print(html) 命令的输出。在打印的输出中我看不到 div,但是当我检查打开的 chrome 页面的检查时,我可以看到 div。
【问题讨论】:
-
可以发网址吗?
标签: python selenium-webdriver web-scraping