如何使用 Python 获取网站的 HTML,就像我们通过 chrome 中的检查选项获取的那样。?

问题描述 投票:0回答:1

对于我的学士论文,我想从某个网站自动下载文件。对我来说,第一步是使用 python 脚本获取网站的 html,这样我就可以抓取所有链接并访问包含我要下载的文件的链接。

我遇到的问题是,当我使用 requests 库时,我得到的代码没有渲染 JS。但即使当我尝试使用 selenium 的方法时,我也得到了未渲染的 html。 有人知道我如何才能获得当我在 Google Chrome 中单击“检查”或在 Safari 中单击“元素信息”时可以看到的 html 吗?

第一个屏幕截图是我想要接收的页面和html。第二个屏幕截图是我尝试过的硒方法(或者其中之一,我尝试了多种方法)。第三张截图是我实际收到的html。

非常感谢您的帮助!

干杯

尼克拉斯

[Website and the html I want to receive](https://i.stack.imgur.com/n06mB.png)
[Code](https://i.stack.imgur.com/UmYSR.jpg)
[Actual Output](https://i.stack.imgur.com/1PyN0.png)
python html web-crawler
1个回答
0
投票
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
import time

driver = webdriver.Chrome()

# URL of the page to scrape
url = 'https://public.tableau.com/app/discover/business-dashboards'

driver.get(url)
time.sleep(5)  # Adjust the sleep time if necessary

# Find elements - adjust the selectors based on actual page structure
dashboard_elements = driver.find_elements(By.CSS_SELECTOR, 'a.link')

dashboards = []
for element in dashboard_elements:
    title = element.text
    link = element.get_attribute('href')
    dashboards.append({'title': title, 'link': link})

driver.quit()

for dashboard in dashboards:
    print(f"Title: {dashboard['title']}, Link: {dashboard['link']}")
© www.soinside.com 2019 - 2024. All rights reserved.