Форум сайта python.su
Добрый вечер и с наступившей пятницей!
Взываю отложить пивко\водочку\коньячок на пару мин в сторону и помочь решить проблему
Парсю таким кодом
def prepare_content(url): headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'} response = requests.get(url, headers=headers) tree = fromstring(response.text) tree.make_links_absolute(response.url) return tree
date = tree.xpath('.//div[@class="h3"]/text()')[1].strip().split(',')[0] print(date) # 'Ночь c 27 ноября на 28 ноября' if 'Ночь с' in date: date = ' '.join(a.split()[-2:])
movie = tree.xpath('.//h2/a/text()')[0] print(movie) # 'Стажер (2015)'
Отредактировано TitanFighter (Ноя. 27, 2015 19:18:32)
Офлайн
TitanFighterСтою на асфальте я в лыжи обутый
Делаю п1 == п2 аля ‘Ночь c’ == ‘Ночь c’ и получаю False!
Офлайн
Вот и я в итоге в лыжи обутый)
Попробуем еще раз по-другому)
То что вы показали, я тоже сделал во второй проверке (чтоб убедится что крыша совсем у меня не поехала).
А когда я делал первый раз проверку, я:
а) написал с клавы “ ‘Ночь с’ == ”
б) скопировал строку ‘Ночь c 27 ноября на 28 ноября’ из результата print(date), вставил после ‘==’ из п1, убрал лишнее (т.е. “ 27 ноября на 28 ноября”).
В итоге получилось ‘Ночь с’ == ‘Ночь с’ и оно нифига не True.
Опять же, я в кодировках не бум-бум, но как я могу предполагать, в парсинге кодировка отличается от той, что используется в IDLE, и когда я скопировал результат выполнения print, я скопировал текст с одной кодировкой, а когда написал с клавы, то кодировка используется другая. И если мое предположение правильное, прошу помочь перевести запарсеный текст в кодировку IDLE.
Упростим:
date = day.xpath('.//div[@class="h3"]/text()')[1].strip().split(',')[0] print('date:', date) print("'Ночь с' in date:", 'Ночь с' in date) if 'Ночь с' in date: date = ' '.join(a.split()[-2:]) print('date:', date) ########### date: Ночь c 27 ноября на 28 ноября 'Ночь с' in date: False date: Ночь c 27 ноября на 28 ноября
Отредактировано TitanFighter (Ноя. 27, 2015 21:15:18)
Офлайн
Офлайн
Я понимаю, что вы мне показываете. Я уже 2 раза сказал, что если с клавы набрать то, что и вы, то все нормально. С запарсенными данными такое не проходит.
Причина оказалась проста:
print(“'Ночь с (c rus)' in date:”, ‘Ночь с’ in date) # False
print(“'Ночь c (c eng)' in date:”, ‘Ночь c’ in date) # True
Отредактировано TitanFighter (Ноя. 28, 2015 11:51:15)
Офлайн
Всем здрасте.
Есть файл со списком УРЛов, которые нужно открывать поочерездно и парсить оттуда текст
Есть вот такой нехитрый код:
with open("urls.txt", "r", encoding="???") as text: get = text.read() urls_list = get.split(",") for url in urls_list: html = urlopen(url).read() soup = BeautifulSoup(html, "lxml") for tag in soup.find_all("p"): print(tag.text)
Офлайн