当前位置: 首页 > 面试题库 >

Python Selenium获取所有“ href”属性

公冶高峯
2023-03-14
问题内容

如何在此页面上获取此“ h2”标题的所有“ href”属性?

<h2 class="entry-title">
<a href="http://www.allitebooks.com/deep-learning-with-python-2/" rel="bookmark">Deep Learning with Python</a>
</h2>

我尝试过的没有得到href的是:

title = driver.find_elements_by_class_name('entry-title')
title[0].get_attribute('href')

这没有获得“ a”标签的链接。如果我在“ a”标签上找到了所有元素,它将返回页面上的每个href(这不是我想要的)。我只想返回上述标题,但能够获取其url“
href”属性。


问题答案:

这是从所有页面获取所有书籍的代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
baseUrl = "http://www.allitebooks.com/page/1/?s=python"
driver.get(baseUrl)

# wait = WebDriverWait(driver, 5)
# wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".search-result-list li")))

# Get last page number
lastPage = int(driver.find_element(By.CSS_SELECTOR, ".pagination a:last-child").text)

# Get all HREFs for the first page and save them in hrefs list
js = 'return [...document.querySelectorAll(".entry-title a")].map(e=>e.href)'
hrefs = driver.execute_script(js)

# Iterate throw all pages and get all HREFs of books
for i in range(2, lastPage):
    driver.get("http://www.allitebooks.com/page/" + str(i) + "/?s=python")
    hrefs.extend(driver.execute_script(js))

for href in hrefs:
    print(href)


 类似资料:
  • 问题内容: 我正在用python构建应用程序,我需要在一个网页中获取所有链接的URL。我已经有一个使用urllib从Web下载html文件并将其转换为具有readlines()的字符串列表的函数。 目前,我有使用正则表达式的代码(我不太擅长)以搜索每一行中的链接: 这是行不通的,因为它只为文件中的每一行打印“ None”,但是我确定打开的文件上至少有3个链接。 有人可以给我一个提示吗? 提前致谢

  • 问题内容: 我开始将Scrapy用于一个小型项目,但无法提取链接。每次找到该类时,我只会得到“ []”而不是URL。我是否缺少明显的东西? 来自网站的示例: 问题答案: 你的xpath查询错误 在这一行中,你实际上是在对没有任何Href属性的div进行迭代 为了使其正确,你应该在中选择元素: 最好的解决方案是直接href在for循环中提取属性 为了简单起见,你还可以使用CSS选择器

  • 问题内容: 我正在用Python练习Selenium,我想使用Selenium获取网页上的所有链接。 例如,我想要http://psychoticelites.com/上所有标签的属性中的所有链接。 我写了一个脚本,它正在工作。但是,它给了我对象地址。我尝试使用标签来获取值,但是,它不起作用。 我当前的脚本: 问题答案: 好吧,您只需要遍历列表即可: 返回元素列表(注意“ elements”的拼写

  • 问题内容: 我正在用Python练习Selenium,我想使用Selenium获取网页上的所有链接。 例如,我想要http://psychoticelites.com/上所有标签的属性中的所有链接。 我写了一个脚本,它正在工作。但是,它给了我对象地址。我尝试使用标签来获取值,但是,它不起作用。 我当前的脚本: 问题答案: 好吧,您只需要遍历列表即可: 返回元素列表(注意“ elements”的拼写

  • 我试图解析我的大学网站,以获得一个新闻列表(标题+链接)从主要网站。然而,当我试图解析一个完整的网站时,我要查找的链接被嵌套在其他类、表等的深处。下面是我试图使用的代码: 但不管用。如果每一个链接都放在以下位置,那么是否有更好的方法获得所有这些链接的href值和标题: 也许是某种循环,它会迭代所有这些标记,并从中获取值? 感谢帮助:-)

  • 有没有一种方法可以在Laravel中检索具有所有属性的模型,即使这些属性为空?它似乎只返回属性不为null的模型。 原因是我有一个函数,如果模型中存在属性,它将从数组中更新模型属性。在设置模型之前,我使用property_exists()函数检查模型是否具有特定属性。数组键和模型属性应该匹配,所以它就是这样工作的。 如果模型已经设置了属性,它可以正常工作,因为属性存在并从数组中获取值。但是,如果属