我想从网页中提取一些文本。我搜索了StackOverFlow(以及其他站点)以找到合适的方法。我使用HTML2TEXT,BEAUTIFULSOUP,NLTK和其他一些手动方法进行提取,例如,我失败了:
这是我的目标网址:http://vynylyn.yolasite.com/page2.php我只想提取不带标签\代码的波斯语段落。
((注:我使用带Python 34的Eclipse Kepler,也想提取文本,然后要对文本进行POS标记,Word \句子标记化等。)
我有什么选择使它正常工作?
首先我会为您选择第二个选项。 BeautifulSoup 4应该(并且确实)应该是support unicode(请注意,它是UTF-8,是一种全局字符编码,因此没有波斯语)。
[是的,您将获得标签,因为它是HTML页面。尝试搜索唯一的ID,或查看页面上的HTML结构。对于您的示例,请查找元素main
,然后在其下查找内容元素,或者在该特定页面中使用div#I1_sys_txt
。拥有元素后,只需调用get_text()。
尝试一下(现在在Python 3中:):>
#!/usr/bin/env python3
import requests
from bs4 import BeautifulSoup
content = requests.get('http://vynylyn.yolasite.com/page2.php')
soup = BeautifulSoup(content.text)
tag = soup.find('div', id='I1_sys_txt')
print(tag.get_text() if tag else "<none found>")
[您可以使用提取库来执行任务,例如trafilatura,它使用LXML(比BeautifulSoup更快)并且可以在您提到的网页上直接使用。