我想使用Python从HTML文件中提取文本.如果我从浏览器复制文本并将其粘贴到记事本中,我想要的输出基本相同.
我想要比使用可能在格式不正确的HTML上失败的正则表达式更强大的东西.我见过很多人推荐Beautiful Soup,但是我使用它时遇到了一些问题.首先,它选择了不需要的文本,例如JavaScript源代码.此外,它没有解释HTML实体.例如,我希望' 在HTML源代码中转换为文本中的撇号,就像我将浏览器内容粘贴到记事本中一样.
更新 html2text看起来很有希 它正确处理HTML实体并忽略JavaScript.但是,它并不完全产生纯文本; 它会产生降价,然后必须将其转换为纯文本.它没有示例或文档,但代码看起来很干净.
相关问题:
我对MediaWiki很新,现在我有点问题.我有一些Wiki页面的标题,我想使用api.php获取所述页面的文本,但我在API中找到的所有内容都是获取页面的Wiki内容的方法(使用wiki标记).我使用了这个HTTP请求......
/api.php?action=query&prop=revisions&rvlimit=1&rvprop=content&format=xml&titles=test
Run Code Online (Sandbox Code Playgroud)
但我只需要文本内容,没有Wiki标记.MediaWiki API可以实现吗?
我一直在寻找大约2个月的时间来找到一个只获得维基百科描述部分的脚本.(这是我正在建造的机器人,不适用于IRC.)也就是说,当我说的时候
/wiki bla bla bla
Run Code Online (Sandbox Code Playgroud)
它将转到维基百科页面bla bla bla,获取以下内容,并将其返回到聊天室:
"Bla Bla Bla"是由Gigi D'Agostino制作的一首歌的名字.他把这首歌描述为"我写的一篇文章,思考所有谈话和谈话但没有说什么的人".着名但无意义的声乐样本取自英国乐队Stretch的歌曲"你为什么这样做"
这是我找到的最接近的,但它只获取URL:
import json
import urllib.request, urllib.parse
def google(searchfor):
query = urllib.parse.urlencode({'q': searchfor})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % query
search_response = urllib.request.urlopen(url)
search_results = search_response.read().decode("utf8")
results = json.loads(search_results)
data = results['responseData']
hits = data['results']
if len(hits) > 0:
return hits[0]['url']
else:
return "No results found."
Run Code Online (Sandbox Code Playgroud)
(Python 3.1)