Парсер youtube перестал работать?

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Windows 7. IDLE (Python 3.8 32-bit)
Уважаемые подскажите.
Парсер youtube работал отлично.
Сейчас перестал, что-то в youtube изменилось.
Скрипт ошибки не даёт.
Но и ничего не находит.
Файл output.txt --- не появляется.
Файл скрипта:
Python:
# -*- coding: utf-8 -*-
import urllib.parse
import urllib.request
import re, os, sys
def findyoutube(x):
    mas=[]
    sq='http://www.youtube.com/results?search_query='+urllib.parse.quote(x)
    doc = urllib.request.urlopen(sq).read().decode('utf8',errors='ignore')
    match = re.findall(r'(?P<v>=(.+?)")+.*(title="(.+?)")', doc)
    if not(match is None):
        for ii in match:
            if(len(ii)<25):
                mas.append(ii[3])
                mas.append(ii[1])
    mas=dict(zip(mas,mas)).values()
    mas2=[]
    for y in mas: mas2.append('http://www.youtube.com/watch?v='+y)
    return mas2
print(findyoutube('болонская+удочка°'))
with open('output.txt', 'w', encoding='utf8') as output:
    for i in findyoutube('болонская+удочка'):
        output.write(i+'\n')
 

MaximusMinimus

Новичок
Пользователь
Ноя 12, 2020
6
1
3
Там наверное в регулярке дело, но я в них пока не шарю.

Вот набросал в учебных целях скрипт с selenium.
Чтобы он работал, нужно установить selenium. И скачать драйвер хрома тут и положить его в папку assets в директории со скриптом.

Python:
from selenium.webdriver import Chrome
import time

def find_youtube(query):
    chrome = Chrome(executable_path="assets/chromedriver.exe")
    chrome.get('https://www.youtube.com/results?search_query=' + query)
    time.sleep(10)
    links = chrome.find_elements_by_css_selector('#video-title')
    list_links = []
    for link in links:
        list_links.append(link.get_attribute('href'))
    return list_links

with open('output.txt', 'w', encoding='utf8') as output:
    for link in find_youtube('болонская+удочка'):
        if isinstance(link, str):
            output.write(link + '\n')
 
  • Мне нравится
Реакции: satfan

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Уважаемый MaximusMinimus
Спасибо.
--------------
Скачал драйвер. Это файл exe
Его нужно запускать ?
Чтобы он работал, нужно установить selenium --- он такой огромный.
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Скачал драйвер. Это файл exe
Его нужно запускать ?
Вам уже написали что с ним нужно сделать:
положить его в папку assets в директории со скриптом
или можно добавить путь к файлу в PATH и тогда в скрипте этот путь указывать не придется.
Чтобы он работал, нужно установить selenium
Да, нужно установить selenium:
Python:
pip install selenium
 

Форум IT Специалистов