Форум сайта python.su
-2
# -*- coding: utf-8 -*- import urllib from urllib import request from urllib.parse import quote import re, os, sys def findyoutube(x): mas=[] sq='http://www.youtube.com/results?search_query='+quote(x) doc = urllib.request.urlopen(sq).read().decode('cp1251',errors='ignore') match = re.findall("\?v\=(.+?)\"", doc) if not(match is None): for ii in match: if(len(ii)<25): mas.append(ii) mas=dict(zip(mas,mas)).values() mas2=[] for y in mas: mas2.append('http://www.youtube.com/watch?v='+y) return mas2 print(findyoutube('болонская+удочка'))
Офлайн
4
satfanА что именно не срабатывает?
Не срабатывает скрипт парсер поиска в ютубе
satfanЮтуб кому-то отдаёт cp1251? Тут наверняка должно быть ‘utf-8’.
.decode('cp1251'
satfanЭто чтобы от повторяющихся значений избавиться что ли? Круто.
mas=dict(zip(mas,mas)).values()
# from urllib import request from urllib.parse import quote import re def findyoutube(x): sq='http://www.youtube.com/results?search_query='+quote(x) doc = request.urlopen(sq).read().decode('utf-8',errors='ignore') match = re.findall("\?v\=(.+?)\"", doc) mas = ['http://www.youtube.com/watch?v='+i for i in set(match) if len(i)<25] return mas
Офлайн
-2
Уважаемый uf4JaiD5.
Спасибо за помощь. Я только начинаю.
=================================
Выдало это:
Traceback (most recent call last):
File “C:\Documents and Settings\Admin\Рабочий стол\Копия Делаем парсер youtube\video.py”, line 2, in <module>
import request
ImportError: No module named request
====================================================
Модуль ставил так:
C:\Python27\python.exe -m pip install bs4
Офлайн
76
для python 2.7 попробуй
from urllib import urlopen
Отредактировано Romissevd (Фев. 3, 2019 15:31:10)
Офлайн
76
Попробуй так
import urllib import re, os, sys def findyoutube(x): mas=[] sq='http://www.youtube.com/results?search_query='+quote(x) doc = urllib.urlopen(sq).read().decode('cp1251',errors='ignore') match = re.findall("\?v\=(.+?)\"", doc) if not(match is None): for ii in match: if(len(ii)<25): mas.append(ii) mas=dict(zip(mas,mas)).values() mas2=[] for y in mas: mas2.append('http://www.youtube.com/watch?v='+y) return mas2 print(findyoutube('болонская+удочка'))
Офлайн
-2
Спасибо за поддержку Romissevd
У меня версия 2.7
Ваш вариант даёт:
============================
Traceback (most recent call last):
File “C:\Documents and Settings\Admin\Рабочий стол\Копия Делаем парсер youtube\123.py”, line 16, in <module>
print(findyoutube('болонская+удочка'))
File “C:\Documents and Settings\Admin\Рабочий стол\Копия Делаем парсер youtube\123.py”, line 5, in findyoutube
sq='http://www.youtube.com/results?search_query='+quote(x)
NameError: global name ‘quote’ is not defined
Офлайн
76
sq='http://www.youtube.com/results?search_query='+urllib.quote(x)
Офлайн
-2
Уважаемый Romissevd
Всё сработало. Просто супер.
1.Только все ссылки без названия видео.
2. Скрипт не создал текстовый файл.
Отредактировано satfan (Фев. 3, 2019 16:53:46)
Офлайн
76
satfanтут нужно смотреть, что приходит к тебе на разбор и что ты из этого извлекаешь
1.Только все ссылки без названия видео.
satfanтвой скрипт не создает текстовый файл
2. Скрипт не создал текстовый файл.
Офлайн
-2
Спасибо.
Я в скрипт вставил:
# -*- coding: utf-8 -*-
Стал искать правильно.
===================
Помоги с этими вопросами:
1.Только все ссылки без названия видео.
2. Скрипт не создал текстовый файл.
===========================
Делаю так:
———————————-
output = open(“output.txt”, ‘w’)
print(lalala, file=output)
output.close()
———————————-
Ошибка: После слова – file= выделилось красным
Отредактировано satfan (Фев. 3, 2019 17:35:02)
Офлайн