我正在处理的当前项目处理Selenium中的“ find_elements_by_xpath”命令。进展一直很好,但是我无法为div标签中span标签之间的一个区域识别正确的xpath。这是我要获取的元素:
<div class="agencyAddress">
<span ng-show="x.agencyAddress1 != ' '" class="ng-binding">2115 W CHICAGO AVE </span>
<br>
<span ng-show="x.agencyCity != ' '" class="ng-binding">CHICAGO , </span>
<span ng-show="x.agencyState != ' '" class="ng-binding">IL</span>
this one here --> <span ng-show="x.agencyZip != ' '" class="ng-binding">60622-7976</span>
<br>
</div>
每次我尝试不同的xpath时,都会得到“ IndexError:列表索引超出范围”退出代码。我尝试了各种不同的xpath,包括在检查框上单击鼠标右键时复制和粘贴xpath,更改xpath的[@id]部分等。我的目标是能够刮擦每个具有xpath的区域。页面上的邮政编码,因此是“ find_elements_by_xpath”命令,因此这就是为什么我要获得此特定退出代码的原因。
我非常感谢任何想法/帮助。谢谢!
(作为参考,这是我到目前为止拥有的python代码以及我要抓取的网站的链接:
Zip_Code = driver.find_elements_by_xpath('//* [@id="appSection"]/div[2]/div/div[3]/div[1]/div/div/div[1]/div/div[1]/div[4]/div[1]/span[4]')
Zip1 = Zip_Code[0].text
Zip2 = Zip_Code[1].text
Zip3 = Zip_Code[2].text
Zip4 = Zip_Code[3].text
Zip5 = Zip_Code[4].text
Zip6 = Zip_Code[5].text
Zip7 = Zip_Code[6].text
Zip8 = Zip_Code[7].text
Zip9 = Zip_Code[8].text
Zip10 = Zip_Code[9].text
链接:https://insurance-agent.safeco.com/find-an-insurance-agency/app/search-results-locationSearch=60612)
答案 0 :(得分:1)
您应该可以使用直接xpath这样直接获取邮政编码值
//span[@ng-show='x.agencyZip != ' '']
or
//span[contains(@ng-show,'agencyZip')]