如何使用python和selenium IDE获取网页上的所有链接

时间:2015-03-02 10:24:26

标签: python css selenium

我希望使用selenium ide和python从网页获取所有链接。

例如,如果我在谷歌网站上搜索测试或任何内容,我想要所有与此相关的链接。

这是我的代码

 from selenium import webdriver
from selenium.webdriver.common.keys import Keys
baseurl="https://www.google.co.in/?gws_rd=ssl"
driver = webdriver.Firefox()
driver.get(baseurl)
driver.find_element_by_id("lst-ib").click()
driver.find_element_by_id("lst-ib").clear()
driver.find_element_by_id("lst-ib").send_keys("test") 
link_name=driver.find_element_by_xpath(".//*[@id='rso']/div[2]/li[2]/div/h3/a")
print link_name
driver.close()

输出

 <selenium.webdriver.remote.webelement.WebElement object at 0x7f0ba50c2090>

在Firebug的控制台中使用xpath $x(".//*[@id='rso']/div[2]/li[2]/div/h3/a")

输出     [a jtypes2.asp]

如何从对象获取链接内容。

1 个答案:

答案 0 :(得分:0)

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
baseurl="https://www.google.co.in/?gws_rd=ssl"
driver = webdriver.Firefox()
driver.get(baseurl)
driver.find_element_by_id("lst-ib").click()
driver.find_element_by_id("lst-ib").clear()
driver.find_element_by_id("lst-ib").send_keys("test")
driver.find_element_by_id("lst-ib").send_keys(Keys.RETURN)
driver.implicitly_wait(2)
link_name=driver.find_elements_by_xpath(".//*[@id='rso']/div/li/div/h3/a")
for link in link_name:
    print link.get_attribute('href')

试试上面的代码。在给出搜索关键字后,您的代码不会发送RETURN密钥。此外,我已进行更改,隐式等待2秒钟加载搜索结果,并且我已更改xpath以获取所有链接。