【问题标题】:How to extract it from HTML with Python?如何使用 Python 从 HTML 中提取它?
【发布时间】:2014-09-25 00:09:28
【问题描述】:

我正在尝试提取该数据:

<div class="address"><h3>Text1</h3><div class="adr">Text2</div></div>

我想打印 text1 和 text2。

我试试这个:

br = mechanize.Browser()
html = """<div class="address"><h3></h3><div class="adr"></div></div>"""
soup = BeautifulSoup(html)
br.addheaders = [('User-agent', 'Firefox')]
br.open("http://de.fakenamegenerator.com/gen-male-gr-gr.php")
adress = soup.findAll('div', attrs={ "class" : "adr"})

print len(adress)

我得到了结果:

1

...

谢谢!

【问题讨论】:

    标签: python html html-parsing beautifulsoup mechanize


    【解决方案1】:

    您需要首先使用mechanize 发出请求,然后才将response 传递给BeautifulSoup 进行解析:

    from bs4 import BeautifulSoup
    import mechanize
    
    br = mechanize.Browser()
    br.addheaders = [('User-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.122 Safari/537.36')]
    br.open("http://de.fakenamegenerator.com/gen-male-gr-gr.php")
    
    soup = BeautifulSoup(br.response())
    address = soup.find('div', attrs={"class": "address"})
    
    print address.h3.text.strip()
    print address.find('div', attrs={'class': 'adr'}).text.strip()
    

    打印:

    Jan Amsel
    Invalidenstrasse 6567159 Friedelsheim
    

    【讨论】:

    • 谢谢这个地址,但我没有得到 h3。
    • 非常感谢!这就是我要找的东西!
    • 你能再告诉我一个.. 试图获取网站上的电话号码。而 text.strip() 说: print tel.find('span', attrs={"class": "value"}).text.strip() AttributeError: 'NoneType' object has no attribute 'text' ... .. 没有文字是因为它是数字吗?
    • @Jerome 打电话试试这个print soup.find('li', attrs={'class': 'tel'}).span.text.strip()
    猜你喜欢
    • 1970-01-01
    • 2021-08-15
    • 2021-05-31
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 2013-06-12
    • 1970-01-01
    相关资源
    最近更新 更多