def extract_text_from_page(random_page): soup = beso(random_page.content, 'html.parser') page_text = "" target_divs = soup.findAll('div', attrs={"class": "mw-content-ltr"}) for td in target_divs: page_text += td.find("div").text # This should delete all NON ascii characters that managed to reach this phase page_text = ''.join(filter(lambda x: x in string.printable, page_text)) # Perform several checkings to gain more confidence on the text content if ((page_text == "") or (len(page_text) == 0)): return NON_VALID_DATA else: return page_text
def replacements(group="КН-207"): conn = http.client.HTTPConnection("mbk.mk.ua") conn.request("GET", "/?page_id=5933") res = conn.getresponse() print(res.status, res.reason) data = res.read().decode('utf-8').replace('\n', '').replace("\r", "").replace( "\t", "") soup = beso(data) last_replacement_table = soup.table tables = soup.findChildren('table') rep = [False] i = 1 for j in last_replacement_table.findChildren('tr'): if j.td.text == group: rep[0] = True tds = j.findChildren('td') rep.append([tds[1].text, tds[2].text, tds[3].text]) i = i + 1 #+=f"\n{num}: {was}->*{will_be}*" return rep
def Weather(text, text_arr): #Это условные названия городов для realmeteo.ru adds = ['великий','нижний','минеральные','санкт']#так начинаются города, состоящий из двух слов cities = {'абакан':'abakan','анапа':'anapa','архангельск':'arkhangelsk','астрахань':'astrakhan','барнаул':'barnaul','брянск':'bryansk','великий новгород':'vnovgorod','владивосток':'vladivostok','волгоград':'volgograd','вологда':'vologda','воронеж':'voronezh','екатеринбург':'ekaterinburg','иваново':'ivanovo','ижевск':'izhevsk','казань':'kazan','калининград':'kaliningrad','киров':'kirov','краснодар':'krasnodar','красноярск':'krasnoyarsk','магадан':'magadan','магнитогорск':'magnitogorsk','майкоп':'maykop','махачкала':'mahachkala','москва':'moscow','мурманск':'murmansk','набережные челны':'nab_chelnu','новокузнецк':'novokuznetsk','омск':'omsk','оренбург':'orenburg','пенза':'penza','пермь':'perm','псков':'pskov','санкт-петербург':'spb','саратов':'saratov','симферополь':'simferopol','смоленск':'smolensk','сочи':'sochi','сыктывкар':'syktyvkar','таганрог':'taganrog','тверь':'tver','тула':'tula','тюмень':'tumen','уфа':'ufa','хабаровск':'habarovsk','чебоксары':'cheboksary','челябинск':'chelyabinsk','ярослваль':'yaroslavl'} citycodes = {0:3, 1:4, 2:3, 3:4, 4:3}#это данные для поиска значений finlist = []#будущий лист значений #try:#Пробуем... for i in range(1): mi = text_arr.index("городе") + 1 city = text_arr[mi]#город if adds.count(city) != 0:#Нас лучай, если название города состоит из двух слов: city += " "+text_arr[mi+1] city1= city city = cities[city]#а теперь условное название города ans = requests.get('http://www.realmeteo.ru/'+city+'/1/current').text soup = beso(ans, "lxml") meteo = soup.findAll('td', {'class':'meteodata'})#Ищем все теги td for i in range(5):#перебираем по пяти параметрам(нас интересуют только перве пять в "meteo") meteodata = str(meteo[i]) howtoread = citycodes[i]#какие данные читать meteodata = meteodata.replace("<", "|")###### meteodata = meteodata.replace(">", "|")##тут мы подготавливаем... meteodata = meteodata.replace("\n", "|")##### meteodata = meteodata.split("|")#...И создаём массив данных... finlist.append(meteodata[howtoread])#...Чтобы записать его в общий лист =) real_temp = finlist[0]####### thin_temp = finlist[1]#### baro_metr = finlist[2]#Вот тут мы вытаскиваем данные по переменным aqua_metr = finlist[3]#### wind_metr = finlist[4]####### ans = "Погода в городе "+city1+". Температура воздуха "+real_temp+" градусов. Ощущается "+thin_temp+". Атмосферное давление "+baro_metr+" миллиметров ртутного столба. Влажность воздуха "+aqua_metr+" процентов. Скорость ветра "+wind_metr+" метров в секунду. RealMeteo... точка ru..." #except:#...А если не получается: # ans = "Я не знаю такого города" return ans
import pandas as pd import requests as rq from bs4 import BeautifulSoup as beso import re import sys, os country = str(sys.argv[2]) city = str(sys.argv[1]) year = [i for i in range(1970, 2020)] for k in range(len(year)): url = 'https://www.timeanddate.com/moon/phases/' + country + '/' + city + '?year=' + str( year[k]) page = rq.get(url) soup = beso(page.content, 'html.parser') td = soup.find_all('tr') td_list = list(td) expression = r'(\w+\s\w+\s\w+\s\w+,\s\d+\s\w+\s\d+,\s\d+:\d+)' dates_list = [] for i in range(len(td_list)): a_string = str(td_list[i]) dates_expression = re.findall(expression, a_string) dates_list.append(dates_expression) final_list = [] for i in range(len(dates_list)): if len(dates_list[i]) != 0: for j in range(len(dates_list[i])):
def google_pars(user_request): url = googleUrlFoSerch + str(user_request) + "&tbm=isch" googleurl = requests.get(url) page_soup = beso(googleurl.text, "html.parser") return page_soup