Scraping href with BeautifulSoup



我正试图从以下网址中获取每资源的二氧化碳趋势表数据:pcaiso.com/todyoutlook/pages/emissions.html

的href属性包含图表的数据集(作为一个很长的字符串(。我试图返回此属性,但无论我如何努力搜索其他建议,我的代码都会为以下请求返回一个零集。

url = 'http://www.caiso.com/todaysoutlook/pages/emissions.html'
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
html = soup.find("a", {"class": "dropdown-item"})
print(html)

感谢您的任何想法!谢谢

当您在代码中检查元素时,您真正想问的似乎是为什么它没有href属性。原因是,当您从服务器请求HTML页面时,它实际上返回了一个没有任何图表数据的静态页面。当您在web浏览器中查看此页面时,它会运行一些JavaScript代码来查询后端并动态填充图表数据。因此,您需要修改获取数据的方法。

一种选择是在浏览器中手动检查页面,对其获取数据的方式进行逆向工程,并在代码中执行同样的操作。大多数web浏览器都有内置的开发工具,可以帮助实现这一点。

另一种选择是使用像Selenium这样的浏览器自动化工具在web浏览器环境中加载页面并从中抓取数据。这效率较低,但对于缺乏网络编程经验的人来说可能更容易,因为你可以将JavaScript功能视为";黑盒";并且更像真实用户那样与页面交互。

最新更新