Нужна помощь в адаптации скрипта Python 3.x для запуска под Python 2.7 (urllib.request & urllib.parse) - PullRequest
0 голосов
/ 01 апреля 2020

Мне нужна помощь для адаптации скрипта Python 3.x с использованием (модули urllib.request и urlllib.parse) для запуска в старой среде Python 2.7. У меня нет опыта работы с Python 2.7 (и более старым модулем urllib). Я надеюсь, что кто-то любезно покажет мне, как изменить приведенный ниже скрипт (с наименьшим количеством изменений), чтобы я мог понять различия.

import random
import urllib.request
import urllib.parse
import re
import webbrowser

if eg.globals.bb_cmd.startswith('Play'):
        title = eg.globals.bb_cmd.replace('Play ', '')
        query_string = urllib.parse.urlencode({"search_query": title})
        html_content = urllib.request.urlopen(
            "http://www.youtube.com/results?" + query_string)
        search_results = re.findall(
            r'href=\"\/watch\?v=(.{11})', html_content.read().decode())
        URL = "http://www.youtube.com/watch?v=" + search_results[0]
        webbrowser.open(URL)
        ReturnMsg = 'Now playing ' + title
        EndSession = 'yes'

1 Ответ

0 голосов
/ 01 апреля 2020

Мне удалось преобразовать этот скрипт в Python 2, совместимый с помощью модуля запросов (согласно предложению в комментариях. Это был самый простой способ добиться того, что мне было нужно.

import random
import requests
import re
import webbrowser

    elif   eg.globals.bb_cmd.startswith('Play'):
                    title = eg.globals.bb_cmd.replace('Play ', '')
                    html_content = requests.get('https://www.youtube.com/results?', params={'search_query': title})
                    search_results = re.findall(r'href=\"\/watch\?v=(.{11})', html_content.text)
                    URL = "http://www.youtube.com/watch?v=" + search_results[0]
                    webbrowser.open(URL)
                    ReturnMsg = 'Now playing ' + title
                    EndSession = 'yes'
...