SNAP
Резидент
- Статус
- offline
- Регистрация
- 20.12.2017
- Сообщения
- 315
- Репутация
- 114
Привет ребятульки, написал парсер, прошу оценить степень крутости кода от 1 до 10
И хочу сказать, то что парсер рабочий, вы просто водите в функции main() в переменную url ссылку на канал, перед этим выберите канал и зайдите во вкладку "Видео"
И хочу сказать, то что парсер рабочий, вы просто водите в функции main() в переменную url ссылку на канал, перед этим выберите канал и зайдите во вкладку "Видео"
1. Никуда не экспортирует ссылки 2. Написан на Python, это не совсем минус, но на том же php парсил бы быстрее
1. Точно не уверен, но в интернете такого не видел, скорее всего есть, я наверно плохо искал 2. Он рабочий 3. Есть проверка на ошибки и если будут загоны с ютубом или интернетом вас оповестят
Код:
import requests
from bs4 import BeautifulSoup
def get_html(url):
r = requests.get(url)
return r
def get_page_data(response):
if 'html' in response.headers['Content-Type']:
html = response.text
else:
html = response.json()['content_html']
soup = BeautifulSoup(html, 'lxml')
items = soup.find_all('h3', class_='yt-lockup-title')
for item in items:
name = item.text.strip()
url = item.find('a').get('href')
print('https://www.youtube.com' + url)
def get_next(response):
if 'html' in response.headers['Content-Type']:
html = response.text
else:
html = response.json()['load_more_widget_html']
soup = BeautifulSoup(html, 'lxml')
try:
url = 'https://youtube.com' + soup.find('button', class_='load-more-button').get('data-uix-load-more-href')
except:
url = ''
return url
def main():
url = 'Сам канал откуда парсить'
get_page_data(get_html(url))
while True:
response = get_html(url)
get_page_data(response)
url = get_next(response)
if url:
continue
else:
break
if __name__ == '__main__':
main()
https://yadi.sk/i/mGaRqpd73YJBT5
source: https://github.com/SeniorPyDev/YoutubeParserUrl
Последнее редактирование: