#python #urlencode
Вопрос:
Я пытаюсь изменить файл ANKI addon .py, чтобы иметь возможность анализировать слова из Оксфорда
from urllib.parse import urlencode
qs = urlencode({"q": "come along"})
URL = "https://www.oxfordlearnersdictionaries.com/search/english/?{}"
print(URL.format(qs))
мой вывод
«https://www.oxfordlearnersdictionaries.com/search/english/?q=come вместе»
но на самом деле результат должен быть таким
«https://www.oxfordlearnersdictionaries.com/definition/english/come-along?q=приходи пойдем»
как я могу преодолеть эту проблему, я довольно новичок
#-- coding:utf-8 --
import random
from ..base import *
import requests
from bs4 import BeautifulSoup
from time import sleep
from random import randint
@register(u'Oxford_Article')
class Oxford_Article(WebService):
def init(self):
super(Oxford_Article, self).init()
def _get_from_api(self):
sleep(randint(1,3))
param = {"q": "come along"}
qs = urlencode(param)
param['q'] = param['q'].replace(' ', '-')
URL = "https://www.oxfordlearnersdictionaries.com/definition/english/{}?{}"
data = self.get_response(URL.format(param['q'],qs))
soup = parse_html(data)
result = {
'Article': u'',
}
# Article
element = soup.find('div', id='entryContent')
for s in element.select('script'):
s.extract()
if element:
result['Article'] = u''.join(str(e) for e in element.contents)
return self.cache_this(result)
@export([u'entryContent', u'Article definition'])
def fld_definate(self):
return self._get_field('Article')
Комментарии:
1. Просто отредактируйте свой URL-адрес. Удалите последнее
/
и изменитеsearch
наdefinition
.2. так что теперь у меня есть эта ссылка oxfordlearnersdictionaries.com/definition/englishq=come вместе это не работает
Ответ №1:
вы можете сделать это
from urllib.parse import urlencode
param = {"q": "come along"}
qs = urlencode(param)
param['q'] = param['q'].replace(' ', '-')
URL = "https://www.oxfordlearnersdictionaries.com/definition/english/{}?{}"
print(URL.format(param['q'],qs))
Комментарии:
1. большое вам спасибо, это работает, но это не работает над этим я обновил свою тему
2. братан, я не разработчик python, я все, что я делаю, я открываю свой блокнот и изменяю связанный файл, я делаю это, чтобы иметь возможность изменять мой аддон программы ANKI
Ответ №2:
если вы получаете ошибку при анализе данных
просто замените этот код
data = self.get_response(URL.format(param['q'],qs))
soup = parse_html(data)
с помощью этого кода
page = urllib.request.urlopen(URL.format(param['q'],qs))
soup = BeautifulSoup(page)
также не забудьте импортировать это
import urllib.request
Комментарии:
1. Я не использую для этого никакой IDE, просто модифицирую файл с помощью notepad спасибо за ваши усилия. Ценю это