Web报废美丽汤多个标签

时间:2015-07-15 08:59:36

标签: python web

我正在尝试从带有A到Z链接的网页上获取多个地址。

首先我得到A到Z的链接:

URL = "http://www.example.com"
html = urlopen(URL).read() 
soup = BeautifulSoup(html, "lxml")
content = soup.find("div", "view-content")
links = [BASE_URL + li.a["href"] for li in content.findAll("li")]

这很好用,在上面的链接中,我有一个指向每个单独网页的链接列表,每个网页上都有多个地址。

为了获取我需要的地址,我使用了:

for item in links[0:5]:
    try:
        htmlss = urlopen(item).read()
        soup = bfs(htmlss, "lxml")
        titl = soup.find('div','views-field-title').a.contents
        add = soup.find('div','views-field-address').span.contents
        zipp = soup.find('div','views-field-city-state-zip').span.contents
    except AttributeError:
        continue

以上代码将获取每个链接并获取页面上的第一个地址,其中包含所有A和页面上的所有B的第一个地址,依此类推。

我的问题是,在某些页面上,每页上都有多个地址,上面的代码只检索该页面上的第一个地址,即First A地址第一个B地址,依此类推。

我尝试过使用soup.findAll,但它不适用于a.content或span.content

基本上我需要在html页面中找到带有非唯一标签的地址行。如果我使用soup.findAll我得到所有的内容(div,views-field-title),这给了我很多我不需要的内容。

一些html的例子:

<div class="views-field-nothing-1"></div>
<div class="views-field-nothing">
    <span class="field-content">
        <div class="views-field-title">
            <span class="field-content">
                <a href="/golf-courses/details/ca/alameda/chuck-corica-golf-complex-earl-fry">

                    Chuck Corica Golf Complex, Earl Fry

                </a>
            </span>
        </div>
        <div class="views-field-address">
            <span class="field-content"></span>
        </div>
        <div class="views-field-city-state-zip">
            <span class="field-content">

                Alameda, California 94502-6502

            </span>
        </div>
    </span>
</div>
<div class="views-field-value"></div>

<div class="views-field-nothing-1"></div>
<div class="views-field-nothing">
    <span class="field-content">
        <div class="views-field-title">
            <span class="field-content">
                <a href="/golf-courses/details/ca/alameda/chuck-corica-golf-complex-jack-clark">

                    Chuck Corica Golf Complex, Jack Clark

                </a>
            </span>
        </div>
        <div class="views-field-address">
            <span class="field-content">

                1 Clubhouse Memorial Rd

                <br></br>
            </span>
        </div>
        <div class="views-field-city-state-zip">
            <span class="field-content">

                Alameda, California 94502-6502

            </span>
        </div>
    </span>
</div>

这只是我需要查找数据的类似html的示例。感谢

0 个答案:

没有答案