我正在尝试构建一个刮刀来检索wiktionary的翻译。
我正在调用此函数,该函数应返回包含参数字的所有翻译的列表,但它返回一个空列表。
但是,response.css('ol').re(r'(?<=>)\w+(?=<)')
命令正在处理有争议的shell。
我用作测试的词是“Hallo”
def scrape_translation(word):
url = "https://en.wiktionary.org/wiki/" + word
response = HtmlResponse(url=url)
translation_list = response.css('ol').re(r'(?<=>)\w+(?=<)')
print(translation_list)
我正在使用Python 3.6.4
答案 0 :(得分:0)
HtmlResponse用于将HTML字符串转换为HtmlResponse对象。 所以你需要添加HTML字符串作为参数体:
import requests
def scrape_translation(word):
url = "https://en.wiktionary.org/wiki/" + word
r = requests.get(url)
response = HtmlResponse(url=url, body = r.content)
translation_list = response.css('ol').re(r'(?<=>)\w+(?=<)')
print(translation_list)
scrape_translation('Hallo')
我使用了请求库,但还有其他python模块可以从URL中提取HTML。