私はPythonでWeb-Scrappingを学んでいます。私はエラー「: 『NoneType』オブジェクトが属性 『見つける』を持っていないはAttributeError」を取得していますインドのイエローページ存在してもテキストを見つけることができません
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
の一つを形成する会社名を取得するためにコードを書きました。私は、オブジェクトが何も見つからない場合、このエラーが発生することを知っています。しかし、私は(coLink)を印刷するとき、それは
<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>
すべてのスパンクラス内、以下のリンクを与える場合には、会社のテキストを取得する方法を助けてくださいことはできますか?あなたは場合にエラーを取得しないでしょう。この方法で
for link in soup.select(".col-sm-5 .jcn a"):
print(link.get_text())
span
がある:あなたが希望a
要素にマッチするCSS selectorを使用することができます - 現在の問題を説明するが、代替ソリューションを提供していない
すべての 'span.jcn'タグに' a'タグが含まれていますか? –
単純な例外を追加すると、内部にタグを持たないすべてのspan.jcnを無視することでこの問題を解決できますか? –
いずれの場合でも、 'coLink.find(" a ")'がテキストを取得できるタグを返すか、 'None'を返すかどうか最初にチェックする必要があります。 –