我正在学习使用Python进行网络报废。我编写了代码来检索印度黄页之一的公司名称
r = requests.get("http://xyzxyz", headers={'User-Agent' : "Magic Browser"})
soup= BeautifulSoup(r.content,"html.parser")
for link in soup.findAll("div", {"class" : "col-sm-5"}):
coLink = link.find("span" , {"class" : "jcn"})
companyName = coLink.find("a").text
我收到错误“AttributeError:'NoneType'对象没有属性'find'”。我知道如果对象没有找到任何内容我们会收到此错误。但是,如果我打印(coLink),它会在每个span类中提供以下链接
<span class="jcn"><a href="http://xyz/Kolkata/Sunrise-International-<near>-B-R-B-Basu-Road-/033P3001041_BZDET?xid=S29sa2F0YSBUYXBlciBSb2xsZXIgQmVhcmluZyBEZWFsZXJz" onclick="_ct('clntnm', 'lspg');" title="Sunrise International in , Kolkata">Sunrise International</a>
</span>
<span class="jcn"><a href="http://xyz/Kolkata/Shree-Shakti-Vyapaar-PVT-LTD/033P6001995_BZDET?xid=S29sa2F0YSBUYXBlciBSb2xsZXIgQmVhcmluZyBEZWFsZXJz" onclick="_ct('clntnm', 'lspg');" title="Shree Shakti Vyapaar PVT LTD in , Kolkata">Shree Shakti Vyapaar PVT LTD</a>
</span>
请帮助您如何获取公司文本?
答案 0 :(得分:0)
不解释当前问题,但提供替代解决方案 - 您可以使用与所需a
元素匹配的CSS selector:
for link in soup.select(".col-sm-5 .jcn a"):
print(link.get_text())
这样,如果span
内没有a
链接,您就不会收到任何错误。
请注意,col-sm-5
是一个可怕的类名,用于定位元素 - 它是特定于UI /布局的,并且很有可能被更改。