· 5 years ago · Feb 12, 2020, 01:48 PM
1import requests
2from bs4 import BeautifulSoup as bs
3import json
4from ast import literal_eval
5
6headers = {'accept' : '*/*',
7 'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Safari/537.36'}
8url = "https://www.virustotal.com/ui/search?relationships%5Bcomment%5D=author%2Citem&relationships%5Burl%5D=network_location%2Clast_serving_ip_address&limit=20&query=http%3A%2F%2Fya.ru"
9def virus_total_parse(url1, headers):
10 url = "https://www.virustotal.com/ui/search?relationships%5Bcomment%5D=author%2Citem&relationships%5Burl%5D=network_location%2Clast_serving_ip_address&limit=20&query=http%3A%2F%2F" + str(url1)
11 session = requests.Session()
12 request = session.get(url, headers=headers)
13 if request.status_code == 200:
14 my_bytes_value = request.content
15 data = literal_eval(my_bytes_value.decode('utf8'))
16 json_text = json.dumps(data, indent=4, sort_keys=True)
17 dict = json.loads(json_text)
18 if dict['data'] == []:
19 return(url1 + '\tОшибка')
20 else:
21 result = dict['data'][0]['attributes']['last_analysis_stats']
22 return("\n" + url1 + "\nБезвредный: " + str(result['harmless'])+ "\nОпастный: " + str(result['malicious']) + "\nПодозрительный: " + str(result['suspicious']))
23 else:
24 return(url1 + '\tОшибка')
25
26def yandex(url1):
27 url = 'https://yandex.ru/safety/check'
28 setting = {"url": url1}
29 req = requests.post(url, data = setting)
30 if req.status_code == 200:
31 my_bytes_value = req.content
32 data = literal_eval(my_bytes_value.decode('utf8'))
33 json_text = json.dumps(data, indent=4, sort_keys=True)
34 dict = json.loads(json_text)
35 if dict['info'] == []:
36 return "\n" + url1 + ": " + "Сайт безопасен"
37 else:
38 return "\n" + url1 + ": " + "Сайт опасен"
39 else:
40 return "\nОшибка\n"
41
42stroka = []
43for i in ["mactep.org", "yandex.ru", "tankionline.com"]:
44 stroka.append(virus_total_parse(i, headers))
45 stroka.append("Яндес:\n" + yandex(i))
46s = ""
47for i in stroka:
48 s = s+i
49print(s)