2015-03-02 53 views
1

我想使用selenium ide和python从网页获取所有链接。如何使用python和selenium获取网页上的所有链接IDE

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

这里是我的代码

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")

输出 [一jtypes2.asp]

?我怎样才能从对象链接的内容。

回答

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以获得所有链接。

+0

我已经试过这个,但它给错误。我想清楚,我需要在xpath中存在的URL。错误追踪(最近一次调用最后一次): 文件“selenium_python.py”,第14行,在 a = driver.find_element_by_xpath(“// * [@ id ='rso']/div [2]/li [1 ]/div/h3/a“) 文件”/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py“,第232行,在find_element_by_xpath中 return self.find_element(by = By.XPATH,value = xpath) 文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote – Mukesh 2015-03-03 07:09:36

+0

@ user3902208检查更新的答案 – thavan 2015-03-03 07:33:57

+0

谢谢它的工作原理,但我也需要那些链接在2,3,4 ......页面上可用,我们在谷歌搜索测试的主页末尾提供 – Mukesh 2015-03-03 08:35:45

相关问题