Парсер 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))
Ну и все конец.
Им бы поиск нормальный сделать и фильтры. А то работает через жопу. Нихрена не найти.
Хорошо сделаем
У них же 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))