首页 > 解决方案 > 无法从网页获取 csv 链接

问题描述

我努力抓取网页以提取 csv 链接。我使用 selenium webdriver 来获取 bs4 可以使用的页面源。

driver = webdriver.Chrome(executable_path=ChromeDriver_Path, options=options)
driver.get("https://www.apple.com/covid19/mobility")
soup = BeautifulSoup(driver.page_source, "html.parser")
Link = soup.select('#download-card > div.download-button-container > a')[0].text

当我打印(链接)它返回一个空字符串。

标签: python-3.xweb-scrapingbeautifulsoup

解决方案


BeautifulSoup 无法做到这一点,因为它不支持 javascript。那个特定的页面主要是用 javascript 构建的。

您可以改用硒。就像是:

>>> from selenium.webdriver.common.by import By
>>> driver.find_element(By.ID,'download-card').find_element_by_class_name('download-button-container').find_elements_by_tag_name('a')[0].get_attribute('href')
'https://covid19-static.cdn-apple.com/covid19-mobility-data/2014HotfixDev17/v3/en-us/applemobilitytrends-2020-08-16.csv'

你可能可以让它更漂亮。这只是又快又脏。


推荐阅读