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

标签 python css selenium

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

例如,如果我在 google 网站上搜索 test 或任何内容,并且我想要所有与之相关的链接。

这是我的代码

 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]

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

最佳答案

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

关于python - 如何使用python和selenium IDE获取网页上的所有链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28807423/

相关文章:

css - Bootstrap 3 和 LESS 语义列排序

javascript - 当另一个函数被触发时,jquery 停用函数

python - overrideredirect(1) 之后的 Tkinter 自定义调整大小事件

html - 填充所有可用高度的输入

java.lang.IllegalStateException : The path to the driver executable must be set by the webdriver. chrome.driver 系统属性;

java - 显式等待在 Selenium webdriver 中不起作用

java - 如何使用 selenium java 下载 pdf 文件?

python - 想知道是否有办法找到pycharm中所有全局安装的包

Python - 按绝对值对字典进行排序

python - 通过 python 应用程序通过 gmail 发送电子邮件