如何阻止每个字母在不同的行上打印?

时间:2015-09-12 15:21:54

标签: python web-scraping beautifulsoup scrape

当我尝试使用beautifulsoup废弃一些文本时

class scrap(object):

        def dirae(self, word):
            url = 'http://dirae.es/palabras/' + word
            site = urllib2.urlopen(url)
            soup = BeautifulSoup(site.read())
            for result in soup.select('div.definitionContent')[0].get_text():
                print(result.encode('utf-8'))

    search = scrap()
    search.dirae('bellota')

html代码示例:

 <div class="definitionContent">
    <li><p>Text</p></li>
    <li><p>Text</p></li>
 </div>

我明白了:

T
e
x
t

T
e
x
t

我想让输出在同一行。

1 个答案:

答案 0 :(得分:1)

soup.select('div.definitionContent')[0].get_text()正在返回一个字符串。因此,对它进行for意味着您正在迭代字符。

您可以尝试这样做:

class scrap(object):

    def dirae(self, word):
        url = 'http://dirae.es/palabras/' + word
        site = urllib2.urlopen(url)
        soup = BeautifulSoup(site.read())
        print soup.select('div.definitionContent')[0].get_text().enconde('utf-8')