python - BeautifulSoup 不会提取所有元素

标签 python web-scraping beautifulsoup

我正在尝试从 http://www.emoryhealthcare.org/locations/offices/advanced-digestive-care-1.html 中抓取信息.

我想抓取出现在页面下三分之一的专业,即“胃肠病学”和“内科医学”。当我检查该元素时,我发现它是 li<div class="module bordered specialist">然而,当我尝试循环遍历汤并打印每个找到的项目时,返回的结果与预期不同。

<div class="module bordered specialist">
<ul>
<li>Cardiac Care</li>
<li>Transplantation</li>
<li>Cancer Care (Oncology)</li>
<li>Diagnostic Radiology</li>
<li>Neurosciences</li>
<li>Mental Health Services</li>
</ul>
</div>

当我在浏览器中打开网站时,我看到上述值在内容切换到预期结果之前闪烁。有没有办法提高我能够抓取我想要抓取的项目的可能性?

最佳答案

只需使用 selenium 等待几秒钟,然后像以前一样进行解析。这似乎成功了。

from selenium import webdriver
import os
import time
from bs4 import BeautifulSoup

chromedriver = "/Users/Rafael/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get('http://www.emoryhealthcare.org/locations/offices/advanced-digestive-care-1.html')
time.sleep(5)
html = driver.page_source

soup = BeautifulSoup(html, 'lxml')
results = soup.find_all("div", { "class" : "module bordered specialist" })
print(results[0].text) #prints GastroenterologyInternal Medicine

关于python - BeautifulSoup 不会提取所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40180259/

相关文章:

Python Scipy 指数曲线拟合

python - 使用 BeautifulSoup 从元标记中获取数据

node.js - 关于简单命令行网络爬虫(Clojure/ClojureScript)的一些问题

Python 获取循环的正确值

Python加速大型嵌套数组处理

javascript - CasperJS 循环遍历表并抓取数据以获取 JSON 输出

php - 如何使用 php 或 node.js 检测位于首屏的网站内容中的广告

python - Python : Another 'NoneType' object has no attribute error

python - 用Python BeautifulSoup 抓取两种价格

python - 使用BeautifulSoup,如何防止元素找不到?