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

Уважаемые подскажите.
Парсер youtube работал отлично.
Сейчас перестал, что-то в youtube изменилось.
При запуске скрипта выдало ошибки:
Python 3.8.0a1 (tags/v3.8.0a1:e75eeb00b5, Feb  3 2019, 19:46:54) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
Warning (from warnings module):
  File "C:\Users\Александр\Desktop\Парсер youtube\parser.py", line 9
    match = re.findall('(\?v\=(.+?)\")+.*(title="(.+?)\")', doc)
SyntaxWarning: invalid escape sequence \?
>>>

=====================
Вот код скрипта:
# -*- 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('(\?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')
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
Причем тут ютуб, если у вас синтаксически не верная регулярка и ошибка на это и указывает, должно быть примерно так
match = re.findall(r'(?P<v>=(.+?)")+.*(title="(.+?)")', doc)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы