在python中使用selenium来获取用户列表

时间:2014-01-14 23:56:54

标签: python selenium python-3.x selenium-webdriver

我在页面上有一堆代码如下:

<div class="user">

    <span class="versus"></span>
    <a href="/users/USERNAME" target="_blank"></a>

</div>

我想获得所有USERNAME的列表。

我尝试使用

driver.find_element_by_partial_link_text("users")

以及

(driver.find_elements_by_css_selector("div.user > a > span")

但我仍然遇到问题。

任何帮助都将不胜感激。

(另外,我是Python的新手 - 如何循环我的结果,例如打印它找到的所有用户名?)

3 个答案:

答案 0 :(得分:0)

下面的代码应该可以正常工作:

driver.find_elements_by_xpath("//div[@class='user']/a")

OR

driver.find_elements_by_css_selector("div.user > a")

答案 1 :(得分:0)

要扩展上述答案以获取用户名:

users = driver.find_elements_by_css_selector("div.user > a") 
for user in users: 
    username = user.get_attribute("href").replace("/users/", "")
    print(username) 

答案 2 :(得分:0)

这些怎么样?

href exact equals:

driver.find_elements_by_css_selector("div.user > a[href='/users/USERNAME']")

href包含:

driver.find_elements_by_css_selector("div.user > a[href*='users']")

href以:

开头
driver.find_elements_by_css_selector("div.user > a[href^='/users/']")

href结束于:

driver.find_elements_by_css_selector("div.user > a[href$='/USERNAME']")

如果用户名在某段html中,则可以使用element.get_attribute('href')

如果我提出您的问题,这应该有用

users = [ elem.get_attribute('href').strip('/users/') for elem in driver.find_elements_by_css_selector("div.user > a[href^='/users/']") ]