如何打开并捕捉手风琴内的所有链接?
我有一些手风琴元素像这样的网站:如何打开并捕捉手风琴内的所有链接?
<div class="col-md-12">
<a data-toggle="collapse" data-parent="#accordion1" title="Click to expand pet name" href="#petName1">
<span class="list-unstyled" style="text-decoration: none;"></span> Dog
</a>
<ul id="petName1" class="collapse">
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=200465" title="Click to view Dog | PET SHOP">
Dog</a> | PET SHOP
</a>
</li>
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=203874" title="Click to view Dog | PET SHOP">
Dog</a> | PET SHOP
</a>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td>
<div class="col-md-12">
<a data-toggle="collapse" data-parent="#accordion1" title="Click to expand pet name" href="#petName2">
<span class="list-unstyled" style="text-decoration: none;"></span> Cat
</a>
<ul id="petName2" class="collapse">
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=076477" title="Click to view Cat">
Cat
</a>
</li>
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=077575" title="Click to view Cat">
Cat
</a>
</li>
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=078773" title="Click to view Cat">
Cat</a>
</a>
</li>
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=090548" title="Click to view Cat">
Cat</a>
</a>
</li>
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=091226" title="Click to view Cat">
Cat</a>
</a>
</li>
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=091624" title="Click to view Cat">
Cat</a>
</a>
</li>
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=091650" title="Click to view Cat">
Cat</a>
</a>
</li>
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=202357" title="Click to view Cat">
Cat</a>
</a>
</li>
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=204846" title="Click to view Cat">
Cat</a>
</a>
</li>
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=205300" title="Click to view Cat">
Cat</a>
</a>
</li>
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=205519" title="Click to view Cat">
Cat</a>
</a>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td>
<div class="col-md-12">
<a data-toggle="collapse" data-parent="#accordion1" title="Click to expand pet name" href="#petName3">
<span class="list-unstyled" style="text-decoration: none;"></span> Gold Fish
</a>
<ul id="petName3" class="collapse">
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=021540" title="Click to view Gold Fish">
Gold Fish </a>
</a>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td>
<div class="col-md-12">
<a data-toggle="collapse" data-parent="#accordion1" title="Click to expand pet name" href="#petName4">
<span class="list-unstyled" style="text-decoration: none;"></span> Horse
</a>
<ul id="petName4" class="collapse">
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=020702" title="Click to view Horse">
Horse </a>
</a>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td>
<div class="col-md-12">
<a data-toggle="collapse" data-parent="#accordion1" title="Click to expand pet name" href="#petName5">
<span class="list-unstyled" style="text-decoration: none;"></span> Ferret
</a>
<ul id="petName5" class="collapse">
<li>
<a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=200153" title="Click to view Ferret">
Ferret </a>
</a>
</li>
</ul>
</div>
</td>
</tr>
</tbody>
我怎样才能在所有的部分与硒的网络驱动器点击并保存手风琴的每个部分下面的链接?我试图:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("https://example.com")
inputElement = driver.find_element_by_id("searchterm")
inputElement.send_keys('pets')
inputElement.send_keys(Keys.ENTER)
driver.find_element_by_id("mp-pusher").click()
inputElement.submit()
然而,它不起作用,因为它没有做任何事(它只是伸出了)。有关如何获得所有链接并打开所有手风琴的任何想法?
以下是java代码不知道蟒蛇,但你可以尝试同样的逻辑
List<WebElement> accordions = driver.findElements(By.xpath("\\a[@data-parent='#accordion1']");
这将让所有的手风琴在列表中。现在遍历列表并点击每个手风琴。
要保存每个手风琴的链接,您可以使用先前列表的webelement。
我得到了这个:'InvalidSelectorException:消息:给定xpath表达式“\ a [@ data-parent ='#accordion']”无效:SyntaxError:表达式不是合法表达式。' –
它的“\\ a [@ data-parent ='#accordion1']“你写过”\ a [@ data-parent ='#accordion']“ –
有时我只是使用'driver.page_source'属性(所有JavaScript运行后的浏览器源代码)抓取源代码并使用类似beautifulsoup的东西进行解析。 –
能否为这种情况提供一个例子?......感谢您的帮助! @PauloScardine –