【发布时间】:2021-10-17 21:24:32
【问题描述】:
from selenium import webdriver
import time
driver = webdriver.Chrome(executable_path=r'C:\Users\gkhat\Downloads\chromedriver.exe')
driver.get('https://www.allrecipes.com/recipes/233/world-cuisine/asian/indian/')
card_titles = driver.find_elements_by_class_name('card__detailsContainer')
button = driver.find_element_by_id('category-page-list-related-load-more-button')
for card_title in card_titles:
rname = card_title.find_element_by_class_name('card__title').text
print(rname)
time.sleep(3)
driver.execute_script("arguments[0].scrollIntoView(true);", button)
driver.execute_script("arguments[0].click();", button)
time.sleep(3)
driver.quit()
website 在点击“加载更多”按钮后加载食物卡上面的代码刮掉了食谱标题我希望它在点击加载更多按钮后继续刮掉标题。 我尝试通过单击 XHR 转到“网络”选项卡,但没有一个请求显示 JSON。我该怎么办?
【问题讨论】:
-
如果你使用 selenium,这是第二慢的刮东西的方法(在手动完成之后),那么你可以找到按钮的 ID。另一种解决方案是在单击按钮时检查浏览器网络选项卡中的 json 响应。在请求中查找参数:可能有一个
page变量可以更改 - 如果有这样的变量,您可以发出一个简单的 HTTP 请求来获取 json 并在 for 循环中增加页码。跨度> -
@mama - 页面变量显示空白响应。 - 我确实找到了按钮的 id,但我不知道如何进一步做什么或如何循环,以便在单击按钮后可以继续抓取
标签: python json selenium web-scraping python-requests