为什么Beautiful Soup会返回这个随机字符串?

时间:2014-09-22 10:22:27

标签: python html beautifulsoup

我正在尝试解析网页以获取股票的简要概述。从seekalpha,HTML看起来像这样:

<div class="company_description_mini_text">
<span style='white-space: pre-line;'>Provectus Biopharmaceuticals Inc is a development-stage pharmaceutical company. It develops, licenses, and sells pharmaceutical products for oncology and dermatology indications.</span>
</div>

对于我的代码,我有这个:

getSummary = soup1.find_all('div', class_='company_description_mini_text')
print getSummary[0].text[100]

但是,返回的只是字母&#39; e。从形式开始,列表中只有一个元素。如果有人能告诉我哪里出错了,我们将不胜感激。

2 个答案:

答案 0 :(得分:2)

text返回一个字符串,索引到该字符串会给你一个单独的字符; e是文本索引100处的字符;你可以得到其他个别角色,或者使用切片:

>>> getSummary[0].text
u'\nProvectus Biopharmaceuticals Inc is a development-stage pharmaceutical company. It develops, licenses, and sells pharmaceutical products for oncology and dermatology indications.\n'
>>> getSummary[0].text[100]
u'e'
>>> getSummary[0].text[0]
u'\n'
>>> getSummary[0].text[:20]
u'\nProvectus Biopharma'

答案 1 :(得分:0)

如果您正在抓取的<div class="company_description_mini_text">只有html,则无需使用find_all()。您可以使用find()方法。

getSummary = soup.find('div', attrs={'class': "company_description_mini_text"})

此处getSummaryTag类型对象。你可以直接在其上申请.text。等,

print getSummary.text

现在getSummary.text会返回unicode个对象。如果你打印getSummary.text [100] 然后它会给你字符串的100th值。