使用selenium提取标题

问题描述 投票:0回答:1

我正在尝试使用 Selenium 从网站 text 抓取菜谱标题,但我遇到了一个问题,我只能提取一些标题,而其他标题则返回空字符串。

我使用以下代码片段来检索标题:

page_url = f'https://www.allrecipes.com/search?{keyword}={keyword}&offset={nb}&q={keyword}'.format(keyword=keyword, nb=nb)

service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

driver.get(page_url)

titles =  [element.get_attribute('data-tag') for element in driver.find_elements(By.CLASS_NAME, "card__content ")]
recipe_links = [element.get_attribute('href') for element in driver.find_elements(By.CSS_SELECTOR, 'a.comp.mntl-card-list-items.mntl-document-card.mntl-card.card.card--no-image')]



print(titles,recipe_links)

driver.quit()

虽然这成功提取了所有收据链接和 2 个第一个标题,但某些标题返回空字符串。

当我尝试这段代码时:

titles = driver.find_elements(By.XPATH, "//span[@class='card__title']")
for title in titles:
    print(title.get_attribute('outerHTML'))

这正确显示了页面的元素,包括标题:

<span class="card__title"><span class="card__title-text ">Chicken Makhani (Indian Butter Chicken)</span></span>
title:  <span class="card__title-text ">Chicken Makhani (Indian Butter Chicken)</span>
...

  1. 为什么我会得到某些标题的空字符串?
  2. 如何确保我可以从第一页正确检索所有标题?
python selenium-webdriver web-scraping webdriver
1个回答
0
投票

您是否尝试过使用 CSS 而不是 XPath?

有相关帖子这里

© www.soinside.com 2019 - 2024. All rights reserved.