有没有办法使用请求和Pandas按日期排序?

2024-04-29 12:08:16 发布

您现在位置:Python中文网/ 问答频道 /正文

就像这个话题一样。我的代码是这样的。一切都正常,但字典似乎被删掉了。最新的CVE从2016年开始。。。不是2020年。就像下面这个屏幕上一样。这里有什么问题?我怎样才能到达2020 CVE?Pycharm是否无法加载其余部分?我试着在cmd中运行它,但结果更糟,它在2014年被削减。我能怎么办

import pandas as pd
import requests

keyword = 'oracle'
url = 'https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword={}'.format(keyword)
html_data = requests.get(url).text

df = pd.read_html(html_data)
data = df[2].to_dict(orient='records')

for dict in data:
    for key in dict:
        print(key, dict[key])

enter image description here

这就是cve.mitre.org上的情况

enter image description here


Tags: keyorgimporturldfdatahtmlrequests
1条回答
网友
1楼 · 发布于 2024-04-29 12:08:16

最好将其用作数据帧,然后可以对列进行筛选:

keyword = 'oracle'
url = 'https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword={}'.format(keyword)
html_data = requests.get(url).text

df = pd.read_html(html_data)
df = df[2]
df['Year'] = df['Name'].str.split('-').str[1].astype(int)
df = df[df['Year']>2016]
print(df)


                  Name                                        Description  Year
0        CVE-2020-9402  Django 1.11 before 1.11.29, 2.2 before 2.2.11,...  2020
1        CVE-2020-9315  ** PRODUCT NOT SUPPORTED WHEN ASSIGNED ** Orac...  2020
2        CVE-2020-9314  ** PRODUCT NOT SUPPORTED WHEN ASSIGNED ** Orac...  2020
3        CVE-2020-8428  fs/namei.c in the Linux kernel before 5.5 has ...  2020
4        CVE-2020-7221  mysql_install_db in MariaDB 10.4.7 through 10....  2020
...                ...                                                ...   ...
2632    CVE-2017-10001  Vulnerability in the Oracle Hospitality Simpho...  2017
2633  CVE-2017-1000030  Oracle, GlassFish Server Open Source Edition 3...  2017
2634  CVE-2017-1000029  Oracle, GlassFish Server Open Source Edition 3...  2017
2635  CVE-2017-1000028  Oracle, GlassFish Server Open Source Edition 4...  2017
2636    CVE-2017-10000  Vulnerability in the Oracle Hospitality Report...  2017

相关问题 更多 >