Уведомления

Группа в Telegram: @pythonsu

#1 Март 1, 2017 18:53:14

ELVYY
Зарегистрирован: 2017-02-25
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при парсинге VK

На 22 строке выдает ошибку о том, что search не имеет типа. Как это понять и исправить. Помогите пожалуйста.

 import requests
from bs4 import BeautifulSoup
import csv
def get_html(url):
	request = requests.get(url)
	return request.text
#СОздание документа
def make_files(base):
	with open('D:/python/vk_parcer.csv', 'a', encoding = 'utf-8') as file:
		writer = csv.writer(file)
		writer.writerow( (
				base['name'],
				base['school'],
				base['massege']
			))
#Сам парсинг
def parse (html):
	soup = BeautifulSoup(html, 'lxml')
	search = soup.find('div', id = 'list_content') #Здесь сама ошибка.
	result = search.find_all('div', class_ = 'friends_list_bl').find_all('div', class_ = 'friends_user_row clear_fix')
	for i in result:
		try:
			name = i.find_all('div', class_ = 'friends_user_info').find('div', class_ = 'friends_field friends_field_title').find('a').text
		except:
			name = ''
		try:
			school = i.find_all('div', class_ = 'friends_user_info').find('div', class_ = 'friends_field').text
		except:
			school = ''
		try:
			massege = i.find_all('div', class_ = 'friends_user_info').find('a').get('href')
		except:
			massege = ''
		
		base = {
				'name':name,
				'school':school,
				'massege':massege
			}
		make_files(base)
def main():
	URL = 'https://vk.com/friends'
	html = get_html(URL)
	parse(html)
if __name__ == '__main__':
    main()

Вот сама ошибка для ознакомления:

Отредактировано ELVYY (Март 1, 2017 18:54:39)

Прикреплённый файлы:
attachment Снимок.PNG (29,9 KБ)

Офлайн

#2 Март 2, 2017 00:08:20

wi34rd
Зарегистрирован: 2016-10-08
Сообщения: 89
Репутация: +  2  -
Профиль   Отправить e-mail  

Ошибка при парсинге VK

Нет типа значит, что там нет данных, которые вы ожидаете увидеть. Нет тех элементов на странице, которые вы запрашиваете.

Офлайн

#3 Март 2, 2017 02:23:10

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Ошибка при парсинге VK

А насколько важен именно парсинг HTML, можно попробовать использовать VK API, чтобы получать данные. Есть даже для этого удобная библиотека.

Офлайн

#4 Март 2, 2017 09:07:45

ELVYY
Зарегистрирован: 2017-02-25
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при парсинге VK

wi34rd
Это я сам понимаю. А как это исправить можно?

Офлайн

#5 Март 3, 2017 06:38:40

wi34rd
Зарегистрирован: 2016-10-08
Сообщения: 89
Репутация: +  2  -
Профиль   Отправить e-mail  

Ошибка при парсинге VK

ELVYY
wi34rdЭто я сам понимаю. А как это исправить можно?
  • Отладка: сохранить то, что возвращает get_html() и посмотреть, если то же что и браузер, то
  • Искать те данные, которые там есть

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version