Python抓取:从<em> </em>中选择文本

时间:2017-06-08 15:14:16

标签: python select

我有学习python抓取的问题,如下所示:

from bs4 import  BeautifulSoup
import requests

url = 'http://www.zhipin.com/job_detail/1411924978.html'

result = requests.get(url)
soup = BeautifulSoup(result.text,'lxml').select('#main > div.job-banner > div > div > div.info-company > p')

print(soup[1])

print(soup[1].get_text())

结果是:

<p>IT软件<em class="vline"></em>已上市<em class="vline"></em>10000人以上</p>

IT软件已上市10000人以上

但我想要的print(soup[1].get_text())是这样的:

IT软件 已上市 10000人以上

IT软件
已上市
10000人以上

我该如何编写代码?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试:

print soup[1].getText(separator=u' ') # space separator
print soup[1].getText(separator=u'\n') # newline separator

输出结果为:

>>> print soup[1].getText(separator=u' ')
IT软件 已上市 10000人以上
>>> print soup[1].getText(separator=u'\n')
IT软件
已上市
10000人以上

来源:another SO answer =&gt;请在提出问题之前研究您的问题。