Почему не парсится имя в вк в теге (h1) (python)
Решил освоить библиотеку Bs4 Написал простой парсер имени человека, имя в теге h1, которая добавляется в cписок, при выводе списка в консоль пустые скобки Помогите решить проблему, код ниже
import csv
from bs4 import BeautifulSoup
import requests
HOST = 'https://vk.com'
URL = 'https://vk.com/judywb'
CSV = 'mypage.csv'
def get_html(url, params = ''):
r = requests.get(url)
return r
def get_content(html):
soup = BeautifulSoup(html, 'html.parser')
items = soup.find_all('div', class_ = 'page_info_wrap ')
info = []
for item in items:
info.append(
{
'name': item.find('h1', class_ = 'page_name').get_text(),
}
)
return info
def save_dock(items, path):
with open(path, 'w', newline = ' ') as file:
writer = csv.writer(file, delimiter = ';')
writer.writerow(['Имя'])
for item in items:
writer.writerow([ item['name'] ])
def parser():
html = get_html(URL)
if html.status_code == 200:
info =[]
html = get_html(URL)
info.extend(get_content(html.text))
print(info)
else:
print('вк ебланы')
parser()
Ответы (1 шт):
Автор решения: Elusha
→ Ссылка
Не нужно парсить ВКонтакте через bs4. В большинстве случаев от вас будут требовать авторизацию, что через requests не очень удобно делать. А ещё иногда будет captcha, с которой будет ещё больше проблем.
Лучше воспользоваться API для разработчиков. Можно отправлять запросы через requests, а лучше воспользоваться уже написанными библиотеками, например vk_api:
import vk_api
vk_session = vk_api.VkApi('<Ваш логин>', '<Ваш пароль>')
vk_session.auth()
vk = vk_session.get_api()
# Получить информацию о текущем пользователе
vk.users.get()
# Получить информацию о любом другом пользователе
vk.users.get(user_ids=<id пользователя>) # Вместо <id пользователя> может быть список с несколькими идентификаторами