DownloadImage, RP5IdParser
This commit is contained in:
parent
cbd74265b5
commit
ad93333cf6
4 changed files with 167 additions and 0 deletions
11
dlimg/list.txt
Normal file
11
dlimg/list.txt
Normal 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
27
dlimg/main.py
Normal 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
83
rp5id_parser/cities.csv
Normal 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,Погода_в_Ярославле,_Ярославская_область
|
|
46
rp5id_parser/main.py
Normal file
46
rp5id_parser/main.py
Normal 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 ...')
|
Loading…
Reference in a new issue