我是一个初学者,试图构建一个脚本来从Gutenberg项目中提取电子书,将其分为章节和段落,然后对文本进行一些基本分析。
我尽力能够可靠地找到章节标题,因为它们方便地位于“ h2”标签中。但是,由于从Linux Mint Nadia升级到Olivia,因此仅检测到前几个标签。
Reddit上的一些优秀人士一直在尝试提供帮助,但我们走到了穷途末路。但是,我们进行的诊断可能很有用。
>>> import bs4
>>> from urllib import urlopen
>>> url = "http://www.gutenberg.org/files/82/82-h/82-h.htm"
>>> newtext = urlopen(url).read()
>>> soup = bs4.BeautifulSoup(newtext)
>>> def chap_list (htmlbook):
print 'A:', len(htmlbook)
soup = bs4.BeautifulSoup(htmlbook)
print 'B:', len(soup)
chapters = soup('h2')
print 'C:', chapters
return
>>> chap_list(newtext)
对我来说,这返回:
A: 1317420
B: 2
C: [<h2>
A ROMANCE
</h2>, <h2>
By Sir Walter Scott
</h2>, <h2>
INTRODUCTION TO IVANHOE.
</h2>, <h2>
DEDICATORY EPISTLE
</h2>]
同样,现在,当我简单地调用如上定义的汤对象时,仅返回书的第一部分-直到“住在约克城堡门”。我确定这曾经返回整个文本。因此,我的评估是BS不再提取全文。
版本:Python 2.74 BeautifulSoup 4.2.1 lxml 3.1.0
在一切正常的情况下,我不知道所使用的版本。尝试在Python 3.3下运行可获得相同的结果。我需要使用2.7,因为稍后我需要nltk。
谁能帮我重新开始这项工作?
偶然的你
相关分类