要从新闻⽹站⾸⻚抓取最新的新闻标题和链接,可以使⽤ requests 库获取⽹⻚内容,然后利⽤ BeautifulSoup 解析HTML,提取新闻标题和相应的链接。
由于新闻⽹站的结构可能不断变化,且每个⽹站的结构不同,这⾥提供的代码仅供学习和参考,可能需要根据⽬标⽹站的实际HTML结构进⾏相应调整。
import requests
from bs4 import BeautifulSoup# 假定的新闻⽹站⾸⻚URL
url = 'https://example.com/news'# 发送GET请求
response = requests.get(url)# 检查请求是否成功
if response.status_code == 200:# 使⽤BeautifulSoup解析HTML内容soup = BeautifulSoup(response.text, 'html.parser')# 假设新闻标题和链接都在<a>标签内,并且这些<a>标签位于特定的HTML结构中# 例如,它们可能位于类名为"news-item"的<div>标签内news_items = soup.find_all('div', class_='news-item')for item in news_items:# 在每个<div>中查找<a>标签获取新闻标题和链接a_tag = item.find('a')if a_tag:title = a_tag.text.strip() # 获取⽂本内容并去除多余的空⽩字符link = a_tag['href'] # 获取链接print(f'标题: {title}, 链接: {link}')
else:print('请求失败,状态码:', response.status_code)
在这个⽰例中, requests.get(url) ⽤于向新闻⽹站发送HTTP GET请求。如果请求成功(即HTTP状态码为200),脚本将使⽤ BeautifulSoup 解析返回的HTML内容。
脚本中新闻标题和链接都包含在 <a> 标签内,这些 <a> 标签⼜位于类名为 news-item 的 <div>标签内。通过遍历所有这样的 <div> 标签,脚本提取每个新闻项⽬的标题和链接,并将它们打印出来。
由于各新闻⽹站的⻚⾯结构差异较⼤,需要检查想抓取的⽹站的HTML结构,并相应地调整上述代码中的选择器(例如, find_all ⽅法中的标签名和类名)。