新闻是点击加载如何爬取,写Python代码
时间: 2024-02-29 20:54:13 浏览: 16
要爬取点击加载的新闻,可以使用 Selenium 库来模拟浏览器操作。以下是一个简单的代码示例:
```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = "https://example.com/news" # 新闻网站的 URL
driver = webdriver.Chrome() # 创建 Chrome 浏览器实例
driver.get(url) # 打开网站
while True:
# 点击加载更多按钮
try:
load_more_button = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CLASS_NAME, "load-more-button")))
load_more_button.click()
except:
break # 没有加载更多按钮,退出循环
# 解析新闻列表
news_list = driver.find_elements(By.CLASS_NAME, "news-item")
# 处理新闻列表
for news in news_list:
# 提取新闻标题、链接、摘要等信息
title = news.find_element(By.CLASS_NAME, "title").text.strip()
link = news.find_element(By.TAG_NAME, "a").get_attribute("href")
summary = news.find_element(By.CLASS_NAME, "summary").text.strip()
# 进行其他处理,如保存到数据库或文件中
driver.quit() # 关闭浏览器
```
在这个例子中,我们创建了一个 Chrome 浏览器实例,并打开了新闻网站。然后我们进入一个循环,每次点击加载更多按钮并解析新闻列表。我们使用 Selenium 的等待函数 `WebDriverWait` 来等待加载更多按钮的出现,并使用 `click` 方法来模拟鼠标点击。然后我们使用 `find_elements` 方法来查找新闻列表,并提取每个新闻的标题、链接和摘要等信息。然后我们进行其他处理,如保存到数据库或文件中。最后,我们退出循环并关闭浏览器。