Парсер vc.ru

Сегодня я вам покажу парсер статьи на vc.ru.

Буду использовать beautifulsoup4,requests.

pip install beautifulsoup4 pip install requests

Теперь берем url статьи , я взял url своей статьи.Пишем легкий код:

from bs4 import BeautifulSoup import requests url = 'https://vc.ru/u/1510590-python-idea/686866-oop-v-python'#здесь может быть ваш url response = requests.get(url)#создание запроса к ссылке print(response.status_code)#если в консоли вышло число 200 идем дальше

Добавляем bs4

soup = BeautifulSoup(response.text, 'html.parser') title = soup.find('h1', class_='content-title') codes = soup.find_all('figure') texts = soup.find_all('div', class_='l-island-a')

И последнее вывод данных парсера:

print(title.get_text(strip=True)) for text in texts: print(t.get_text(strip=True)) for code in codes: print(c.get_text(strip=True))

Весь код:

from bs4 import BeautifulSoup import requests url = 'https://vc.ru/u/1510590-python-idea/686866-oop-v-python' response = requests.get(url) print(response.status_code) soup = BeautifulSoup(response.text, 'html.parser') title = soup.find('h1', class_='content-title') codes = soup.find_all('figure') texts = soup.find_all('div', class_='l-island-a') print(title.get_text(strip=True)) for text in texts: print(t.get_text(strip=True)) for code in codes: print(c.get_text(strip=True))

Ну и все конец.

22
5 комментариев

Им бы поиск нормальный сделать и фильтры. А то работает через жопу. Нихрена не найти.

2
Ответить

Хорошо сделаем

Ответить

У них же API есть

Ответить

Можешь показать ссылку на API

Ответить

Спасибо огромное! А что так можно было?

Только в коде, есть ошибка. Или я что-то не так понял. Вот исправленная версия:
from bs4 import BeautifulSoup
import requests

url = 'https://vc.ru/u/1510590-python-idea/686866-oop-v-python'
response = requests.get(url)
print(response.status_code)

soup = BeautifulSoup(response.text, 'html.parser')
title = soup.find('h1', class_='content-title')
codes = soup.find_all('figure')
texts = soup.find_all('div', class_='l-island-a')
print(title.get_text(strip=True))
for text in texts:
print(text.get_text(strip=True))
for code in codes:
print(code.get_text(strip=True))

Ответить