我正在尝试从带有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的示例。感谢