Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用BeautifulSoup刮除href_Python_Web Scraping_Beautifulsoup - Fatal编程技术网

Python 用BeautifulSoup刮除href

Python 用BeautifulSoup刮除href,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我正试图从以下url获取每种资源的二氧化碳趋势表数据:pcaiso.com/todaysoutlook/pages/emissions.html 的href属性包含图表的数据集(作为一个很长的字符串)。我试图返回此属性,但我的代码为以下请求返回一个零集,无论我如何努力,并搜索其他建议 url = 'http://www.caiso.com/todaysoutlook/pages/emissions.html' page = requests.get(url) soup = BeautifulS

我正试图从以下url获取每种资源的二氧化碳趋势表数据:pcaiso.com/todaysoutlook/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浏览器都有内置的开发工具,可以帮助实现这一点


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

我也可以重现您的结果,但我试图在此处提取的文本字符串实际上是href属性。它太长,无法复制和粘贴,但我会放上前几个字符:“数据:text/csv;charset=utf8,%2004%2F13%2F2021%2C00%3A00%”。此字符串包含图表中的数据,文本由“%2”分隔。基本上,我只需要图形的内容,我的策略就是对这个字符串进行文本解析。我们也欢迎其他以不同方式获取数据的建议!感谢you@Sophie我明白了,当您编写“我的代码为下面的请求返回零集”时,您实际的意思是“当我在代码中请求页面时,元素没有href属性”。我会更新我的答案来解释原因。谢谢!非常有用。