【发布时间】:2022-08-18 23:19:00
【问题描述】:
我试图使用 VirusTotal API 从 this 示例之后的文件中扫描 URL 运行程序时,它会在文件中返回我 <Response [403]>(禁止)。 基本上我发现的唯一一件事是我在编写我的 API 密钥时可能会出错,但我检查并仔细检查了它似乎是正确的。
你知道这可能来自哪里吗?
import requests
minute = 60
from time import sleep
file = open(\"url.txt\",\"r\") #url file contains all URLs
lines = file.readlines()
file.close()
for line in lines:
url = \"http://\" + line[:-3] #Added that because my URLs didn\'t have http:// at the beggining and contained \"Â\" at the end because of encoding
params = {\'apikey\': \'my_API_key\', \'url\':url} # My API key is written inside the \'\' as such \'123456\'
response = requests.post(url, data=params)
responsesFile = open(\"Responses.txt\",\"w\")
responsesFile.write(str(response))
sleep(5*minute)
提前致谢 :)
编辑:我不知道为什么上面的代码不能工作,但是使用 API V3,我发现了一个工作的代码,这里是基础
import requests
import json
import base64
headers = {\'x-apikey\': \'VT_API_KEY\'}
resource = \"https://www.lacoste.com\"
endpoint = \"https://www.virustotal.com/api/v3/urls\"
response = requests.post(endpoint, headers=headers , data =
{\'url\':resource})
print(response.json())
analysis_id = response.json()[\'data\'][\'id\']
analysis_url = \"https://www.virustotal.com/api/v3/analyses/\" + analysis_id
response = requests.get(analysis_url, headers=headers)
response_json = response.json()
print(response_json)
希望这可以帮助你
-
您能否调试或举一些例子
url的样子? -
网址在我的文本文件中看起来像这样:\"google.com\"。运行代码时,它看起来像这样“google.com”。所以我必须在开头添加\“http://\”并在测试时删除\“Â\”,我必须删除3个字符才能正常工作
-
很可能是编码问题,添加
print(url)来验证编码问题,如果错误则需要在 open() 调用中更改编码,或者使用不同的编码写入文件。