抓取页面并尝试从第一列获取所有网址。当我打电话给文本时,我得到了div中的所有内容。但是,当我专门定位URL时,我只得到第一个。我如何获得所有这些 - 分开存储?
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns3:singlePayment xmlns:ns3="http://impl.sub.xxx.com/">
<request>
<accountName>xxx</accountName>
</request>
</ns3:singlePayment>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
答案 0 :(得分:1)
因为您通过标签名称导航解析树,如果您有多个匹配的属性名称,只返回第一个。这是预期的行为。尝试使用 find_all()
来搜索它们。
来自BS4文档:
“使用标记名称作为属性将仅为您提供第一个标记 那个名字。“
“如果您需要获取所有标签,或任何更复杂的标签 比具有特定名称的第一个标签,您需要使用其中一个 搜索树中描述的方法,例如 find_all()“
请参阅:https://www.crummy.com/software/BeautifulSoup/bs4/doc/#navigating-using-tag-names
答案 1 :(得分:0)
这是findAll,但我需要向上移动树
for a in main_div.findAll('a', href=True):
print a['href']