python - get_attribute('href') 返回无
问题描述
我正在学习硒。我正在尝试用硒抓取亚马逊网站。这是我要抓取的链接。
在上面的 url 中,我试图用类提取所有元素a-size-mini
并从这些元素中提取链接。
这是我的代码
links = driver.find_elements_by_class_name("a-size-mini")
for link in links:
element = WebDriverWait(driver, 5).until(
EC.presence_of_element_located((By.LINK_TEXT, link.text)))
print(element.get_attribute('href'))
但这是回归None
。我不确定我做错了什么。列表的长度links
显示为 55,当我尝试打印element
变量时,我得到以下信息
<selenium.webdriver.remote.webelement.WebElement (session="121606058bd493d1a70fc957699d7f6d", element="c3dd6f5b-a9bb-409c-8ee2-666cac7e7432")>
所以这些变量不是空的或无。但是当我尝试使用get_attribute('href')
它返回的方法提取链接时None
请帮帮我。提前致谢
解决方案
请使用此命令。
links = driver.find_elements_by_xpath('//h2[contains(@class, "a-size-mini")]/a')
通过 xpath 解析 html 比类名更有效。
推荐阅读
- model-view-controller - 根据惯例和最佳实践,当路由为“/posts/x/comments”时,评论“create”函数的正确控制器是什么?
- javascript - 如何在 jquery datepicker 中添加一个和多个叶子
- reactjs - React Formik - 在字段验证中使用 setstate
- javascript - 更改文本颜色或将其显示在路径顶部,以便路径不会覆盖它
- flutter - Flutter Nested Listviews 设计在内容增长时浮动
- jq - 使用 jq 转换日期值,然后按它过滤
- matlab - 卡尔曼滤波器 [Matlab]
- c# - 由于变量地址的变化,删除对象导致错误
- sql - 在 SQL 中识别不同的行集
- powershell - 以另一个用户身份在 powershell 脚本中运行命令