使用CSS选择器捕获所有链接的Selenium结果
我在练习使用Selenium,它可以抓取到第一个链接。
但是我希望它能抓取到所有的链接。
因为这些链接的结构是一样的,所以它应该能抓取到所有链接。
<div class='dah'>
<section>
<div class='media'><a href='http://www.test.tw/event/22'></a>
<section>
<section>
<div class='media'><a href='http://www.test.tw/event/23'></a>
<section>
<section>
<div class='media'><a href='http://www.test.tw/event/24'></a>
<section>
<section>
<div class='media'><a href='http://www.test.tw/event/25'></a>
<section>
<div>
我该怎么做呢?
这是我在终端里的代码:
>>> from selenium import webdriver
>>> d = webdriver.Firefox()
>>> d.get('http://www.test.com/')
>>> next = d.find_element_by_css_selector("div.hah section div.media a")
>>> next.get_attribute("href")
u'http://www.test.tw/event/22'
1 个回答
1
使用 find_elements_by_css_selector
方法来找到多个元素(Selenium 提供了 find_element_*
和 find_elements_*
这两种方法)
elements = d.find_elements_by_css_selector("div.hah section div.media a")
[a.get_attribute("href") for a in elements]