Python 3 - ошибка веб-очистки веб-страницы Microsoft CVE с помощью JSONDecodeError - PullRequest
1 голос
/ 05 мая 2020

Итак, я прочитал вопрос ниже. Ответ содержит несколько кодов для дальнейшего тестирования.

Как я могу очистить веб-страницу Microsoft CVE, которая динамически назначает свое содержимое (предпочтительно с использованием Python)?

Это это исполнение моих кодов. Может кто-нибудь посоветует по нижеприведенным кодам ошибок?

Python 3.6.8 (default, Sep 26 2019, 11:57:09)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>>
>>> cve_url = "https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0910"
>>>
>>> response = requests.get(cve_url)
>>> cve_dict = response.json()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/site-packages/requests/models.py", line 898, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib64/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/usr/lib64/python3.6/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python3.6/json/decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 2)

>>> print(response.text)

Есть ответ с сайта. Текст ответа доступен здесь.

https://ybin.me/p/4302365fe913f62c#sdm8 + KPnPhPQ8NfX9rrb2LuLgWUm5RgrnNSvd9Rtfd8 =

Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Я использовал неправильный URL-адрес Microsoft. Это должно быть так, как показано ниже. https://portal.msrc.microsoft.com/api/security-guidance/en-US/CVE/CVE-2020-0910

import requests

cve_url = "https://portal.msrc.microsoft.com/api/security-guidance/en-US/CVE/CVE-2020-0910"

response = requests.get(cve_url)
cve_dict = response.json()

#print(response.text)

requests.get(cve_url).json()
print(cve_dict)

И я получаю ответ json.

{'publishedDate': '2020-04-14T07:00:00Z', 'cveNumber': 'CVE-2020-0910', 'affectedProducts': [{'name': 'Windows 10 Version 1809 for x64-based Systems', 'platform': '', 'impactId': 100000005, 'impact': 'Remote Code Execution', 'severityId': 100000000, 'severity': 'Critical', 'baseScore': 8.4, 'temporalScore': 7.6, 'environmentScore': None, 'vectorString': 'CVSS:3.0/AV:A/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H/E:P/RL:O/RC:C', 'supersedence': '4538461', 'knowledgeBaseId': None, 'knowledgeBaseUrl': None, 'monthlyKnowledgeBaseId': None, 'monthlyKnowledgeBaseUrl': None, 'downloadUrl': None, 'downloadTitle': None, 'monthlyDownloadUrl': None, 'monthlyDownloadTitle': None, 'articleTitle1': '4549949', 'articleUrl1': 'https://support.microsoft.com/help/4549949', 'downloadTitle1': 'Security Update', 'downloadUrl1': 'https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4549949', 'doesRowOneHaveAtLeastOneArticleOrUrl': True, 'articleTitle2': '', 'articleUrl2': '', 'downloadTitle2': '', 'downloadUrl2': '', 'doesRowTwoHaveAtLeastOneArticleOrUrl': False, 'articleTitle3': '', 'articleUrl3': '', 'downloadTitle3': '', 'downloadUrl3': '', 'doesRowThreeHaveAtLeastOneArticleOrUrl': False, 'articleTitle4': '', 'articleUrl4': '', 'downloadTitle4': '', 'downloadUrl4': '', 'doesRowFourHaveAtLeastOneArticleOrUrl': False 
....
0 голосов
/ 05 мая 2020

Попробуйте просмотреть другие запросы, если они содержат необработанные json ответы.

...