示例#1
0
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
示例#2
0
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
示例#3
0
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	
示例#4
0
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])):
示例#5
0
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