如何解决使用beautifulsoup进行数据收集
我不熟悉数据收集。我正在尝试从网站中删除三个详细信息-“” 一种。日期 b。客户数量 C。当前中断
对于current outages
,我尝试了-
article = soup.find(class_="menu-content")
keyword_section = soup.find(class_="menu-row")
keywords_raw = keyword_section.find_all(class_="total-outages-value menu-info-numbers")
keyword_list = [word for word in keywords_raw]
但这不会给我div
{这是一个数字}的值。
我想简单地获取上周的这些(历史数据)
解决方法
如果您提供了要抓取的网站链接以及完整的代码,那将非常有帮助。但是,从您共享的代码中,我可以说,您没有提到您要抓取的属性,即soup.find('attribute',class_ = 'some_class')
例如,如果日期在属性“ li”下,则应提及为
soup.find('li',class_ = 'abcd')
如果客户数量在属性“ div”下,则您应提及
soup.find('div',calss_ = 'efjh')
如果这对您没有帮助,建议您提及您要抓取的网站,并提供用于理解和回答相关内容的全部代码。
,我浏览了该链接,但它没有直接给出该链接,因为我们必须单击“主页”按钮来获取所需的数据。硒可以处理,这是一个很大的过程,需要进行附加设置。
但是,仅使用请求和BeautifulSoup库,我得到了一个更好,更简单的解决方案。
他们提供了API,其中他们正在使用JSON上传数据。因此,我们可以直接抓取JSON并获取所需的数据。请参考下面的代码以及API链接。
从bs4导入BeautifulSoup 导入请求url = 'https://outagemap.coned.com/resources/data/external/interval_generation_data/2020_08_14_17_00_30/data.json?_=1597425338718'
request_url = requests.get(url)
json_response = request_url.json()
print('Date:\t\t\t',json_response['summaryFileData']['date_generated'])
print('Number of custormers:\t',json_response['summaryFileData']['total_cust_s'])
print('Current Outages:\t',json_response['summaryFileData']['total_outages'])
有关输出,请参考以下屏幕截图。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。