Scrappy CSS选择器返回空列表

时间:2018-03-23 19:51:05

标签: python python-3.x scrapy

我正在尝试构建一个刮刀来检索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

1 个答案:

答案 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。