【发布时间】:2018-01-21 00:37:45
【问题描述】:
目前我正在尝试从网上抓取一些信息,但我有点陷入了死胡同。
因此,为了获得我想要的数据,我需要从列表中选择正确的货币。我单击链接更改货币,然后通过 java 脚本,该站点获得另一块包含列表的 html 并打开一个覆盖,我可以在其中选择正确的货币。
我试图找到存储列表的 div:
driver.find_elements_by_xpath("//html/body/div[19]/div[2]/div/div/div[2]/form/div[2]")
我尝试了列表本身,但无法找到该元素。
然后我想看看是否找到了一些东西并使用以下内容:
len(driver.find_elements_by_xpath("//html/body/div[19]/div[2]/div/div/div[2]/form/div[2]"))
提供了答案 0,所以我的 webdriver 无法找到新添加的 html 块。
这是新添加的html:
<div class="module">
<div class="modal_mask" style="opacity: 0.5;"/>
<div class="modal_scroller">
<div class="modal_container" style="margin-top: 164.5px;">
<div class="modal_ship" style="margin: 0px auto;">
<div class="modal_title">
Address Currency
<i onclick="modal_remove();">×</i>
</div>
<div class="modal_ship_con">
<h3>Please select your shipping destination & currency</h3>
<p>Price may differ based on your Shipping destination.</p>
<form action="#" method="get">
<input value="81" name="country_sel" type="hidden"/>
<input value="USD" name="currency_sel" type="hidden"/>
<div class="currency">
<b>Currency:</b>
<div class="currency_list">
<div class="active">
<i class="arrow_a">
<i/>
</i>
<span>
USD
<u>US$</u>
</span>
</div>
<div class="currency_box" style="display: none;">
<ul>
<li sel="USD">
USD
<u>US$</u>
</li>
<li sel="EUR">
EUR
<u>€</u>
</li>
<li sel="GBP">
GBP
<u>£</u>
</li>
<li sel="AUD">
AUD
<u>AU$</u>
</li>
<li sel="CAD">
CAD
<u>CA$</u>
</li>
</ul>
</div>
</div>
</div>
<div class="submit">
<input onclick="saveShip(0);" value="Save" type="button"/>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
这是我必须点击的地方:
<div class="active">
<i class="arrow_a">
<i/>
</i>
<span>
USD
<u>US$</u>
</span>
</div>
所以现在我的问题是:是否有可能获得新添加的 html 代码?有没有类似“刷新webdriver”的东西?
问候
【问题讨论】:
-
如果您不提供包括 HTML 代码在内的最小且完整的示例,几乎不可能为您提供帮助。
-
首先,这种 XPATH 是为破解而生的。您应该创建可靠的 XPath。发布有关您的页面和 html 的更多详细信息
-
我知道你不应该使用绝对引用,但这应该是一个快速而肮脏的原型。
标签: javascript python selenium web-scraping