首页 > 解决方案 > 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 文件中生成一个可点击的链接。

提前致谢。

标签: pythonseleniumweb-scraping

解决方案


您将所有值存储在单个变量中。您将始终获得最后一个值。我将它存储在列表中。因此,您可以遍历列表,如下所示。它可能会解决您的问题。

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

推荐阅读