iMacros - 使用 XPATH 标记特定元素

问题描述 投票:0回答:2

提前感谢您抽出宝贵的时间来解决这个难题并就该主题对我进行教育。

(请原谅我的用词)

我在 Firefox 的 iMacros 中使用以下代码来选择网站上的一个元素,只要该元素存在并且顺序相同,它就可以正常工作。

TAG XPATH=".//*[@id='contacts']/ul/li[1]/div/ul/li[1]" EXTRACT=TXT

在这种情况下将导致“New York, NY”

来自:

<div id="contacts" class="article expanding_group">
<div class="article-header">
<!-- Public Company = Block. Public Name/Title = Restricted. -->
<ul class="list">
<li class="list_item">
<div class="list_item_content contact-detail">
<div class="edit expanded">
<ul>
<li class="name"> New York, NY </li>
<li class=" ellipsis">
<a href="http://www.a24films.com" target="_blank">http://www.a24films.com</a>
</li>
<li class="info ">
+1 646 568 6015
<span class="attributes">phone</span>
</li>
<li class="info ellipsis">
<a href="mailto:[email protected]" data-linkpa="offsite-contact--email">[email protected]</a>
</li>
<li class="address ">601 West 26th Street</li>
<li class="address ">Suite 1740</li>
<li class="address "> New York, NY 10001 </li>
<li class="address ">USA</li>
<li class="address ">
</ul>
</div>

但是,如果该字段丢失,它将跳到下一个字段,这本质上会导致数据被插入到错误的行中。

例如如果我期望列“姓名、电话、地址”,并且缺少电话,则会导致“姓名、地址、空白”。

只有当列表项 1 的 class="name" 时我才能看到它,所以我的问题是:有没有办法指定我想要类中包含“name”的列表项编号 1?

我尝试了各种字符串,但没有成功,但我想像这样的事情是可能的:

TAG XPATH=".//*[@id='contacts']/ul/li[1]/div/ul/li[1]/name" EXTRACT=TXT

感谢您的宝贵时间,

雷纳尔多

html web-scraping xpath tags imacros
2个回答
0
投票

您可以尝试以下代码:

TAG XPATH=".//*[@id='contacts']/ul/li[1]/div/ul/li[@class='name'][1]" EXTRACT=TXT

0
投票

试试这个 Xpath:

.//*[@id='contacts']//li[@class='name'][1]

我认为@Shugar 的代码不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.