1
我使用readbility
来检索一些HTML页面。我需要从没有HTML标签的HTML页面获取正文文本。我可以用readability
来做到这一点吗?使用可读性清除HTML标记
我使用readbility
来检索一些HTML页面。我需要从没有HTML标签的HTML页面获取正文文本。我可以用readability
来做到这一点吗?使用可读性清除HTML标记
通过readability
源代码挖后,我发现,虽然确实出现了利用图书馆的cleaners
模块清理HTML的方式,使用的方法来检索内容(使用lxml
)存储它作为unicode文本。这是一个问题,因为cleaners
用于去除HTML标签的方法返回Unicode对象的AttriuteError
:
import requests
from readability import Document
response = requests.get('http://example.com')
doc = Document(response.text)
doc.summary()
# raw content of HTML page with tags
doc.get_clean_html()
# AttributeError: 'unicode' object has no attribute 'get_clean_html'
它的出现,那就是,这个包还没有看到积极的发展了一段时间,因此具有许多错误。
BeautifulSoup是另一个更好开发的库,它可以完成readability
所做的所有工作。对于同样使用BeautifulSoup代替的问题,也有an excellent answer。这是一个长期的解决方案。
在短期内,根据页面是多么复杂,你可以使用re
删除所有的HTML标签,并留下文字,如下图所示使用我的网站:
import re
import requests
from readability import Document
response = requests.get('http://ryanmcginnis.co/')
doc = Document(response.text)
cleanme = doc.summary()
print(re.sub('<.*?>', '', cleanme))
该程序从我的文本网站返回纯文本。
你想要整个页面还是特定的部分?是否该页面没有HTML标签,或者您希望提取没有HTML标签? – celestialroad
我想提取文本,以便它没有任何html标记。 – Mehdi