找不到文本,尽管它存在

2024-04-19 20:47:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python学习web报废。我写了代码从一个印度黄页上检索公司名称

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'”。我知道如果object没有找到任何东西,我们就会得到这个错误。但是,如果在打印(coLink)时,它会在每个span类中提供以下链接

<span class="jcn"><a href="http://xyz/Kolkata/Sunrise-International-&lt;near&gt;-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>

你能帮我弄到公司的短信吗?你知道吗


Tags: inhttpfindclasspvtspaninternationalltd
1条回答
网友
1楼 · 发布于 2024-04-19 20:47:02

不是解释当前的问题,而是提供另一种解决方案—您可以使用CSS selector来匹配所需的a元素:

for link in soup.select(".col-sm-5 .jcn a"):
    print(link.get_text())

这样,如果有一个span内部没有a链接,就不会出现任何错误。你知道吗

请注意,col-sm-5是一个用来定位元素的糟糕类名-它是特定于UI/布局的,很有可能被更改。你知道吗

相关问题 更多 >