使用CSS选择器捕获所有链接的Selenium结果

1 投票
1 回答
750 浏览
提问于 2025-04-18 16:03

我在练习使用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]   

撰写回答