猿问

有什么方法可以使用请求和熊猫按日期排序吗?

就像在主题中一样。我的代码看起来像这样。一切正常,但似乎字典在某处被删减了。最新的 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])

这就是它在 cve.mitre.org 上的样子

http://img2.mukewang.com/63b4e3e30001014512130592.jpg


慕哥9229398
浏览 145回答 1
1回答

MMMHUHU

最好将其用作 DataFrame,然后您可以对列进行过滤:keyword = 'oracle'url = 'https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword={}'.format(keyword)html_data = requests.get(url).textdf = 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  Year0        CVE-2020-9402  Django 1.11 before 1.11.29, 2.2 before 2.2.11,...  20201        CVE-2020-9315  ** PRODUCT NOT SUPPORTED WHEN ASSIGNED ** Orac...  20202        CVE-2020-9314  ** PRODUCT NOT SUPPORTED WHEN ASSIGNED ** Orac...  20203        CVE-2020-8428  fs/namei.c in the Linux kernel before 5.5 has ...  20204        CVE-2020-7221  mysql_install_db in MariaDB 10.4.7 through 10....  2020...                ...                                                ...   ...2632    CVE-2017-10001  Vulnerability in the Oracle Hospitality Simpho...  20172633  CVE-2017-1000030  Oracle, GlassFish Server Open Source Edition 3...  20172634  CVE-2017-1000029  Oracle, GlassFish Server Open Source Edition 3...  20172635  CVE-2017-1000028  Oracle, GlassFish Server Open Source Edition 4...  20172636    CVE-2017-10000  Vulnerability in the Oracle Hospitality Report...  2017
随时随地看视频慕课网APP

相关分类

Python
我要回答