【问题标题】:Python, attain a certain text from htmlPython,从html获取某个文本
【发布时间】:2014-06-14 18:19:26
【问题描述】:

我正在尝试获得用韩语编写的特定文本。有没有更有效的方法来做到这一点,而不是将其转换为字符串并从那里解析?

代码:

#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>

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

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

【问题讨论】:

  • 你不需要 'span' 也不需要 id= 'lblKName' 会做同样的工作。
  • @PadraicCunningham:我没看到!谢谢。

标签: python html regex parsing beautifulsoup


【解决方案1】:

如果文本的韩文部分总是在 br 标记之前的第一部分,您可以使用:

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

【讨论】:

    【解决方案2】:

    提示:

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

      soup = BeautifulSoup(urllib2.urlopen(url))
      
    2. 另一个选项是正则表达式。它们非常快,但正确构建也是一个挑战,如果页面格式发生变化,它们会中断。坚持使用 BeautifulSoup,除非您遇到困难。

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

    【讨论】:

    • 好建议,但这并不能回答最初提出的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多