Парсер Ссылок Под YouTube

SNAP

Резидент
Статус
offline
Регистрация
20.12.2017
Сообщения
315
Репутация
114
Привет ребятульки, написал парсер, прошу оценить степень крутости кода от 1 до 10
И хочу сказать, то что парсер рабочий, вы просто водите в функции 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
 
Последнее редактирование:

SNAP

Резидент
Статус
offline
Регистрация
20.12.2017
Сообщения
315
Репутация
114
Первый раз тему с моим кодом лайкнули (Слеза течёт)
 

SNAP

Резидент
Статус
offline
Регистрация
20.12.2017
Сообщения
315
Репутация
114
Апну потому что мало кто увидел
 

SNAP

Резидент
Статус
offline
Регистрация
20.12.2017
Сообщения
315
Репутация
114
Отредактировал тему