我正在嘗試修改 ANKI 插件 .py 文件,以便能夠解析牛津的單詞from urllib.parse import urlencodeqs = urlencode({"q": "come along"})URL = "https://www.oxfordlearnersdictionaries.com/search/english/?{}"print(URL.format(qs))我的輸出“https://www.oxfordlearnersdictionaries.com/search/english/?q=come+along”但實(shí)際上輸出應(yīng)該是這樣的“https://www.oxfordlearnersdictionaries.com/definition/english/come-along?q=come+along”我怎樣才能克服這個(gè)問題我是初學(xué)者#-- coding:utf-8 --import randomfrom ..base import *import requestsfrom bs4 import BeautifulSoupfrom time import sleepfrom 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')
2 回答

當(dāng)年話下
TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
你可以這樣做
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))

胡說叔叔
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果您在解析數(shù)據(jù)時(shí)遇到錯(cuò)誤
只需替換這段代碼
data = self.get_response(URL.format(param['q'],qs)) soup = parse_html(data)
用這個(gè)代碼
page = urllib.request.urlopen(URL.format(param['q'],qs)) soup = BeautifulSoup(page)
也不要忘記導(dǎo)入這個(gè)
import urllib.request
添加回答
舉報(bào)
0/150
提交
取消