使用python和beauthulsi提取一些信息。 更具体地说,在检索非美国邮政编码时,我需要帮助。在
考虑一下一家美国公司的以下html数据:(已经是soup对象)
<div class="compContent curvedBottom" id="companyDescription">
<div class="vcard clearfix">
<p id="adr">
<span class="street-address">999 State St Ste 100</span><br/>
<span class="locality">Salt Lake City,</span>
<span class="region">UT</span>
<span class="zip">84114-0002,</span>
<br/><span class="country-name">United States</span>
</p>
<p>
<span class="tel">
<strong class="type">Phone: </strong>+1-000-000-000
</span><br/>
</p>
<p class="companyURL"><a class="url ext" href="http://www.website.com" target="_blank">http://www.website.com</a></p>
</div>
</ul>
</div>
我可以使用以下python代码提取zipcode(84114-0002):
^{pr2}$你可以看到我需要一些律师用if address['zip'] == '':
这两个soup对象的例子给我带来了麻烦。在下面我想检索EC4N 4SA
<div class="compContent curvedBottom" id="companyDescription">
<div class="vcard clearfix">
<p id="adr">
<span class="street-address">Albert Buildings</span><br/>
<span class="extended-address">00 Queen Victoria Street</span>
<span class="locality">London</span>
EC4N 4SA
<span class="region">London</span>
<br/><span class="country-name">England</span>
</p>
<p>
</p>
<p class="companyURL"><a class="url ext" href="http://www.website.com.com" target="_blank">http://www.website.com.com</a></p>
</div>
<p><strong>Line of Business</strong> <br/>Management services, nsk</p>
</div>
以及下面,我有兴趣获得71364
<div class="compContent curvedBottom" id="companyDescription">
<div class="vcard clearfix">
<p id="adr">
<span class="street-address">Alfred-Kärcher-Str. 100</span><br/>
71364
<span class="locality">Winnenden</span>
<span class="region">Baden-Württemberg</span>
<br/><span class="country-name">Germany</span>
</p>
<p>
<span class="tel">
<strong class="type">Phone: </strong>+00-1234567
</span><br/>
<span class="tel"><strong class="type">Fax: </strong>+00-1234567</span>
</p>
</div>
</div>
现在,我在大约68000个帐户上运行这个程序,其中28000个是非美国的。我只举了两个例子,我知道目前的方法不是防弹的。可能还有其他地址格式,这个脚本不能如预期的那样工作,但我相信找出英国和德国的帐户将有很大的帮助。在
提前谢谢
因为它只是
<p>
内没有标记的文本,所以您可以使用只获取文本(不带标记),而不从嵌套标记(}和空格。在
^{pr2}$<span>
)中获取。这将给出包含文本和一些\n
和空格的列表,这样您就可以使用join()
创建一个字符串,strip()
删除所有{结果:
EC4N 4SA
与第二个HTML相同
结果:
71364
相关问题 更多 >
编程相关推荐