From ad93333cf6c6c2c2a5396c644da7ae00bc856d6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9?= <50486086+DarkCat09@users.noreply.github.com> Date: Tue, 8 Jun 2021 16:28:01 +0400 Subject: [PATCH] DownloadImage, RP5IdParser --- dlimg/list.txt | 11 ++++++ dlimg/main.py | 27 ++++++++++++++ rp5id_parser/cities.csv | 83 +++++++++++++++++++++++++++++++++++++++++ rp5id_parser/main.py | 46 +++++++++++++++++++++++ 4 files changed, 167 insertions(+) create mode 100644 dlimg/list.txt create mode 100644 dlimg/main.py create mode 100644 rp5id_parser/cities.csv create mode 100644 rp5id_parser/main.py diff --git a/dlimg/list.txt b/dlimg/list.txt new file mode 100644 index 0000000..bddf0bb --- /dev/null +++ b/dlimg/list.txt @@ -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 diff --git a/dlimg/main.py b/dlimg/main.py new file mode 100644 index 0000000..823584e --- /dev/null +++ b/dlimg/main.py @@ -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('') diff --git a/rp5id_parser/cities.csv b/rp5id_parser/cities.csv new file mode 100644 index 0000000..8efd7b5 --- /dev/null +++ b/rp5id_parser/cities.csv @@ -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,Погода_в_Ярославле,_Ярославская_область diff --git a/rp5id_parser/main.py b/rp5id_parser/main.py new file mode 100644 index 0000000..342138d --- /dev/null +++ b/rp5id_parser/main.py @@ -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 ...')