python - Python Selenium 抓取 HREF + 锚文本
问题描述
我有以下片段成功地从我没有透露的 xpath 中提取锚文本和 href 属性。使用两个检索到的值,我希望它们匹配,以便我可以写入文件。你可以在最后几行看到我的思考过程。
deal_title = browser.find_elements_by_xpath("//")
for title in deal_title:
anchor_title = title.text
deal_link = browser.find_elements_by_xpath("//")
for link in deal_link:
text_link = link.get_attribute('href')
#code below does not work
for text_link, anchor_title in zip(text_link, anchor_title):
f.write("<a href=" + text_link + ">" + anchor_title + "</a>")
最终,这应该打印出所有带有正确对应 URL 的锚文本(无标记),从而在我正在编写的 HTML 文件中生成一个可点击的链接。
提前致谢。
解决方案
您将所有值存储在单个变量中。您将始终获得最后一个值。我将它存储在列表中。因此,您可以遍历列表,如下所示。它可能会解决您的问题。
deal_title = browser.find_elements_by_xpath("//")
titles = []
for title in deal_title:
titles.append(title.text)
deal_link = browser.find_elements_by_xpath("//")
links = []
for link in deal_link:
links.append(link.get_attribute('href'))
for title, link in zip(titles, links):
f.write("<a href=" + link + ">" + title + "</a>")
推荐阅读
- javascript - 将事件对象发送到没有 event.persist 的回调
- ubuntu - HADOOP - 权限被拒绝执行 start-all.sh
- mongodb - 具有嵌套结构的 MongoDB 查询
- node.js - Nightwatchjs 读取文本文件 nodejs
- c - 无法使用 gcc 编译 main.c 并将其链接到另一个源文件
- c# - 在 asp.net core 中基于语言环境的时间格式
- c# - c# Filewatcher Microsoft Word
- c# - 在 Linq 中选择包含其他对象列表的新对象
- javascript - .toFixed 函数不适用于 js-object
- c# - 使用管理员权限和权限从 C# 执行 Powershell 脚本