在python中删除查询结果的特定部分

时间:2015-10-10 12:12:39

标签: html regex python-3.x

我写过那个使用yandex api转换一些英文外来字符的脚本,这里是代码:

for pre in soup.select('body'):
    pree= pre.text
    print (pree)

HTML是:

<body>
    onComplete_10([{"Alignment":"0:1-0:4 2:2-6:9 3:3-6:9","From":"zh-CHS","OriginalTextSentenceLengths":[4],"TranslatedText":"Drama Arts","TranslatedTextSentenceLengths":[10]}]);
</body>

返回的结果是(当然):

onComplete_10([{"Alignment":"0:1-0:4 2:2-6:9 3:3-6:9","From":"zh-CHS","OriginalTextSentenceLengths":[4],"TranslatedText":"Drama Arts","TranslatedTextSentenceLengths":[10]}]);

我只需要获得“戏剧艺术”的翻译文本。

注意: 我更新了我的for循环。现在使用正则表达式来过滤我所需的数据,但仍然没有运气。

for pre in soup.select('body'):
    p = re.compile(ur'"TranslatedText":"(.*?)"')
    strr = pre.text
    pree = re.findall(p, strr)
    print (pree)

1 个答案:

答案 0 :(得分:1)

稍微改了一下就是犯了一个小错误。虽然出于某种原因,上述内容适用于regex101。

for pre in soup.select('body'):
    p = re.compile(u'"TranslatedText":"(.*?)"')
    strr = pre.text
    pree = re.findall(p, strr)
    print (pree)