Python,从html获得某个文本

时间:2014-06-14 18:19:27

标签: python html regex parsing beautifulsoup

我正在努力获得用韩语写的某些文字。有没有更有效的方法来做到这一点,而不是将其转换为字符串并从那里解析它?

CODE:

#input:     url
#output:    name
def urlSC(url):
    soup = BeautifulSoup(urllib2.urlopen(url).read())
    name = soup.find('span', id = 'lblKName')

输出:

<span id="lblKName">구세군앵커리지한인교회<br>The Salvation Army Anch. Korean Corps.</br></span>

需要: 구세군앵커리지한인교회

url:http://www.koreanchurchyp.com/ViewDetail.aspx?OrgID=4102

2 个答案:

答案 0 :(得分:2)

如果文字的韩文部分始终位于br标签之前的第一部分,您可以使用:

name = soup.find(id = 'lblKName').contents[0]

答案 1 :(得分:0)

提示:

  1. 对于HTML字符串,BeautifulSoup可以采用文件句柄。这稍微简单一点,如果您的文本更接近页面的开头,可能会更快。

    soup = BeautifulSoup(urllib2.urlopen(url))
    
  2. 另一种选择是正则表达式。它们非常快,但也是构建正确的挑战,并且如果页面格式发生变化将会中断。坚持使用BeautifulSoup,除非你被困住。

  3. BeautifulSoup可以使用多个不同的解析器库,具有不同的空间/时间/可靠性权衡。请参阅:http://www.crummy.com/software/BeautifulSoup/bs4/doc/