DownloadImage, RP5IdParser

This commit is contained in:
Андрей 2021-06-08 16:28:01 +04:00 committed by GitHub
parent cbd74265b5
commit ad93333cf6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 167 additions and 0 deletions

11
dlimg/list.txt Normal file
View file

@ -0,0 +1,11 @@
https://i.ibb.co/TLMWVKX/html.png
https://i.ibb.co/HgKBX69/css.png
https://i.ibb.co/FDHWwVT/vbscript.png
https://i.ibb.co/yPRhNPw/php.png
https://i.ibb.co/G3qP39z/python.png
https://i.ibb.co/k0bJfrr/powershell.png
https://i.ibb.co/k1WYYYs/javascript.png
https://i.ibb.co/km1sN5Y/java.png
https://i.ibb.co/5hLz74k/cs.png
https://i.ibb.co/j46ws29/bash.png
https://i.ibb.co/dLGNx4Q/cpp.png

27
dlimg/main.py Normal file
View file

@ -0,0 +1,27 @@
import requests
imgsfile = open('list.txt', 'rt')
imgslist = imgsfile.readlines()
imgsfile.close()
try:
for img in imgslist:
url = img.strip()
result = requests.get(url).content
filepath = url.split('/')
file = open(filepath[len(filepath) - 1], 'wb')
file.write(result)
file.close()
print('Done!')
except KeyboardInterrupt:
print('Stopped by keyboard')
except Exception as ex:
print(ex)
input('')

83
rp5id_parser/cities.csv Normal file
View file

@ -0,0 +1,83 @@
ID,City
5095,Погода_в_Майкопе
1360,Погода_в_Барнауле,_Алтайский_край
1599,Погода_в_Благовещенске,_Амурская_область
1174,Погода_в_Архангельске,_Архангельская_область
1200,Погода_в_Астрахани,_Астраханская_область
8667,Погода_в_Уфе
1435,Погода_в_Белгороде,_Белгородская_область
1859,Погода_в_Брянске,_Брянская_область
8440,Погода_в_Улан-Удэ
2278,Погода_во_Владимире,_Владимирская_область
2315,Погода_в_Волгограде
2327,Погода_в_Вологде
2374,Погода_в_Воронеже,_Воронежская_область
5260,Погода_в_Махачкале
1577,Погода_в_Биробиджане
9066,Погода_в_Чите,_Забайкальский_край
3416,Погода_в_Иваново,_Ивановский_район
13507,Погода_в_Магасе
152525,Погода_в_Иркутске
5633,Погода_в_Нальчике_(аэропорт)
3688,Погода_в_Калининграде
9323,Погода_в_Элисте
3708,Погода_в_Калуге,_Калужская_область
6608,Погода_в_Петропавловске-Камчатском
8990,Погода_в_Черкесске
6601,Погода_в_Петрозаводске
4013,Погода_в_Кирове,_Кировская_область
7925,Погода_в_Сыктывкаре
4326,Погода_в_Костроме,_Костромская_область
4429,Погода_в_Краснодаре,_Краснодарский_край
4475,Погода_в_Красноярске,_Красноярский_край
174,Погода_в_Симферополе
3932,Погода_в_Кемерове
4711,Погода_в_Кургане,_Курганская_область
4731,Погода_в_Курске,_Курская_область
7285,Погода_в_Санкт-Петербурге
4931,Погода_в_Липецке
5081,Погода_в_Магадане
3609,Погода_в_Йошкар-Оле
7300,Погода_в_Саранске,_Мордовия
5483,Погода_в_Москве_(ВДНХ)
5538,Погода_в_Мурманске
5797,Погода_в_Нижнем_Новгороде
5917,Погода_в_Великом_Новгороде
6036,Погода_в_Новосибирске
6290,Погода_в_Омске
6318,Погода_в_Орле,_Орловская_область
6320,Погода_в_Оренбурге
6501,Погода_в_Пензе,_Пензенская_область
6560,Погода_в_Перми
2275,Погода_во_Владивостоке
6935,Погода_в_Пскове
2622,Погода_в_Горно-Алтайске
9421,Погода_в_Якутске
7147,Погода_в_Ростове-на-Дону
7217,Погода_в_Рязани,_Рязанская_область
7259,Погода_в_Самаре,_Самарская_область
7303,Погода_в_Саратове
9362,Погода_в_Южно-Сахалинске
3034,Погода_в_Екатеринбурге
234,Погода_в_Севастополе,_Севастополь
2277,Погода_во_Владикавказе
7561,Погода_в_Смоленске
7719,Погода_в_Ставрополе
8012,Погода_в_Тамбове
3646,Погода_в_Казани,_Татарстан
8077,Погода_в_Твери
8218,Погода_в_Томске
8306,Погода_в_Туле,_Тульская_область
4769,Погода_в_Кызыле,_Россия
8374,Погода_в_Тюмени,_Тюменская_область
3451,Погода_в_Ижевске
8452,Погода_в_Ульяновске
8722,Погода_в_Хабаровске
858,Погода_в_Абакане
8753,Погода_в_Ханты-Мансийске
8955,Погода_в_Челябинске
2713,Погода_в_Грозном,_Чечня
8935,Погода_в_Чебоксарах,_Чувашия
1057,Погода_в_Анадыре
7249,Погода_в_Салехарде
9462,Погода_в_Ярославле,_Ярославская_область
1 ID,City
2 5095,Погода_в_Майкопе
3 1360,Погода_в_Барнауле,_Алтайский_край
4 1599,Погода_в_Благовещенске,_Амурская_область
5 1174,Погода_в_Архангельске,_Архангельская_область
6 1200,Погода_в_Астрахани,_Астраханская_область
7 8667,Погода_в_Уфе
8 1435,Погода_в_Белгороде,_Белгородская_область
9 1859,Погода_в_Брянске,_Брянская_область
10 8440,Погода_в_Улан-Удэ
11 2278,Погода_во_Владимире,_Владимирская_область
12 2315,Погода_в_Волгограде
13 2327,Погода_в_Вологде
14 2374,Погода_в_Воронеже,_Воронежская_область
15 5260,Погода_в_Махачкале
16 1577,Погода_в_Биробиджане
17 9066,Погода_в_Чите,_Забайкальский_край
18 3416,Погода_в_Иваново,_Ивановский_район
19 13507,Погода_в_Магасе
20 152525,Погода_в_Иркутске
21 5633,Погода_в_Нальчике_(аэропорт)
22 3688,Погода_в_Калининграде
23 9323,Погода_в_Элисте
24 3708,Погода_в_Калуге,_Калужская_область
25 6608,Погода_в_Петропавловске-Камчатском
26 8990,Погода_в_Черкесске
27 6601,Погода_в_Петрозаводске
28 4013,Погода_в_Кирове,_Кировская_область
29 7925,Погода_в_Сыктывкаре
30 4326,Погода_в_Костроме,_Костромская_область
31 4429,Погода_в_Краснодаре,_Краснодарский_край
32 4475,Погода_в_Красноярске,_Красноярский_край
33 174,Погода_в_Симферополе
34 3932,Погода_в_Кемерове
35 4711,Погода_в_Кургане,_Курганская_область
36 4731,Погода_в_Курске,_Курская_область
37 7285,Погода_в_Санкт-Петербурге
38 4931,Погода_в_Липецке
39 5081,Погода_в_Магадане
40 3609,Погода_в_Йошкар-Оле
41 7300,Погода_в_Саранске,_Мордовия
42 5483,Погода_в_Москве_(ВДНХ)
43 5538,Погода_в_Мурманске
44 5797,Погода_в_Нижнем_Новгороде
45 5917,Погода_в_Великом_Новгороде
46 6036,Погода_в_Новосибирске
47 6290,Погода_в_Омске
48 6318,Погода_в_Орле,_Орловская_область
49 6320,Погода_в_Оренбурге
50 6501,Погода_в_Пензе,_Пензенская_область
51 6560,Погода_в_Перми
52 2275,Погода_во_Владивостоке
53 6935,Погода_в_Пскове
54 2622,Погода_в_Горно-Алтайске
55 9421,Погода_в_Якутске
56 7147,Погода_в_Ростове-на-Дону
57 7217,Погода_в_Рязани,_Рязанская_область
58 7259,Погода_в_Самаре,_Самарская_область
59 7303,Погода_в_Саратове
60 9362,Погода_в_Южно-Сахалинске
61 3034,Погода_в_Екатеринбурге
62 234,Погода_в_Севастополе,_Севастополь
63 2277,Погода_во_Владикавказе
64 7561,Погода_в_Смоленске
65 7719,Погода_в_Ставрополе
66 8012,Погода_в_Тамбове
67 3646,Погода_в_Казани,_Татарстан
68 8077,Погода_в_Твери
69 8218,Погода_в_Томске
70 8306,Погода_в_Туле,_Тульская_область
71 4769,Погода_в_Кызыле,_Россия
72 8374,Погода_в_Тюмени,_Тюменская_область
73 3451,Погода_в_Ижевске
74 8452,Погода_в_Ульяновске
75 8722,Погода_в_Хабаровске
76 858,Погода_в_Абакане
77 8753,Погода_в_Ханты-Мансийске
78 8955,Погода_в_Челябинске
79 2713,Погода_в_Грозном,_Чечня
80 8935,Погода_в_Чебоксарах,_Чувашия
81 1057,Погода_в_Анадыре
82 7249,Погода_в_Салехарде
83 9462,Погода_в_Ярославле,_Ярославская_область

46
rp5id_parser/main.py Normal file
View file

@ -0,0 +1,46 @@
import re
import requests
import urllib.parse
from lxml import html
# Get web page with Russian cities from RP5
russian_cities_page = requests.get('https://rp5.ru/Погода_в_России')
russian_cities_tree = html.fromstring(russian_cities_page.content)
# Extract the table with cities
columns = russian_cities_tree.xpath('//div[@class="countryMap"]//div[@class="countryMap-cell"]')
# File
cities_file = open('cities.csv', 'wt')
cities_file.write('ID,City\n')
# Write all identifiers and cities
city_link_regex = re.compile(r'^https*://rp5.ru/(Погода_в[А-Яа-я\w.,\-()]+)')
added_ids = []
for col in columns:
ids = col.xpath('.//span[@class="Ajax-PointID"]//@id')
for city in ids:
str_to_write = ''
# Check identifier
for added in added_ids:
if city == added:
break
else:
# Write identifier
added_ids.append(city)
str_to_write += str(city)
# Comment this block to execute script faster and prevent DDoS detecting on RP5 server
city_response = requests.get('https://rp5.ru/town.php?id=' + city)
redirect = urllib.parse.unquote(city_response.url)
print(redirect)
str_to_write += (',' + city_link_regex.search(redirect).group(1))
# Write to file
cities_file.write(str_to_write + '\n')
print(city)
cities_file.close()
print('')
input('Press ENTER to exit ...')