使用 Python 从网站上抓取数据 [关闭]

Posted

技术标签:

【中文标题】使用 Python 从网站上抓取数据 [关闭]【英文标题】:Scraping data from a website using Python [closed] 【发布时间】:2022-01-23 03:31:49 【问题描述】:

是否可以使用 Python 代码从本网站的图表中提取数据? https://xsi.xeneta.com/

【问题讨论】:

欢迎来到 Stack Overflow。请阅读How to Ask 并确保您了解这不是论坛。您应该从 your own research 开始,然后向我们展示您自己解决问题的尝试,以及对问题的具体描述和关于如何解决的具体问题解决这个问题。这不是弄清楚什么是可能的或设计通用方法的正确位置;这是弄清楚如何应用技术的地方。 【参考方案1】:

是的,假设页面上存在数据,您可以使用请求获取页面,然后提取所需的数据。它看起来像

import requests
page = requests.get(url="https://xsi.xeneta.com/")
data = page.content
print(data)

这会给你一个起点,至少可以做任何你想做的处理。

对于一些在这里可能有用的功能- https://www.w3schools.com/python/ref_requests_response.asp

【讨论】:

【参考方案2】:

如果您检查图表,您会发现它嵌套在 iframe 中。我抓住了第一个图表并直接导航到该站点,而不是 xsi.xeneta.com。您还可以看到 data-json 属性中有很多数据,因此这段代码使用 selenium 打印了这些数据。

进口:

pip install selenium
pip install webdriver-manager

代码:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.implicitly_wait(5)
driver.get("https://xsi-short.xeneta.com/xsic/chart/asia-europe/")
canvas = driver.find_element_by_xpath('//*[@id="chart-visualization-b9948b5ccd27f73bf764abe4a935c502"]')
print(canvas.get_attribute("data-json"))

【讨论】:

以上是关于使用 Python 从网站上抓取数据 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用谷歌浏览器中的检查元素功能来抓取网站[关闭]

使用 Scrapy 抓取 Python 数据

从气候变化网站 PYTHON 抓取文件

使用python如何摆脱从网站上抓取的文本中的尾随空格[重复]

Python从网站上抓取表?

从网站抓取数据的3种最佳方法