网络抓取对于需要高效地从网络收集数据的开发人员来说是一项基本技能。在本教程中,我们将演练一个简单的 Python 脚本,使用 BeautifulSoup(一个用于解析 HTML 和 XML 的强大库)从新闻网站中抓取文章标题。
在本教程结束时,您将拥有一个脚本,只需几行代码即可从网页中提取并显示文章标题!
在深入研究代码之前,请确保您的系统上安装了 Python。您还需要以下库:
您可以使用 pip 安装这些库:
pip install requests beautifulsoup4
假设您想跟踪 BBC 新闻等网站的最新新闻。您可以使用 Python 自动执行此任务并抓取文章标题以进行分析或显示,而不是手动访问该网站。
这是用于抓取文章标题的完整 Python 脚本:
import requests from bs4 import BeautifulSoup def fetch_article_titles(url): try: # Step 1: Send an HTTP GET request to fetch the webpage response = requests.get(url) response.raise_for_status() # Ensure the request was successful # Step 2: Parse the webpage content with BeautifulSoup soup = BeautifulSoup(response.text, "html.parser") # Step 3: Use a CSS selector to find all article titles titles = [] for heading in soup.select("h3"): # Most news sites use <h3> tags for article titles titles.append(heading.get_text(strip=True)) # Extract and clean the text return titles except requests.exceptions.RequestException as e: print(f"Error fetching the webpage: {e}") return [] except Exception as e: print(f"Error during parsing: {e}") return [] # Example usage: Fetching titles from BBC News url = "https://www.bbc.com/news" titles = fetch_article_titles(url) # Print the article titles print("Latest Article Titles:") for i, title in enumerate(titles, 1): print(f"{i}. {title}")
提出请求:
解析内容:
提取标题:
运行脚本时,您将获得一个干净的文章标题列表:
Latest Article Titles: 1. Israel-Gaza conflict: Latest updates 2. Global markets fall amid economic uncertainty 3. AI advancements raise ethical questions 4. Football: Premier League results ...
您可以修改此脚本以抓取其他类型的内容或定位不同的网站。您可以尝试以下一些调整:
更改 CSS 选择器:
如果目标网站具有不同的结构,请将“h3”替换为更具体的选择器(例如“div.article-title”)。
抓取额外数据:
通过选择相关的 HTML 元素和属性来提取 URL、发布日期或摘要。
尊重网站的服务条款:
请务必检查网站的 robots.txt 文件或使用条款,以确保允许抓取。
限制您的请求:
通过使用 time.sleep 方法在请求之间添加延迟来避免服务器过载。
优雅地处理变化:
网站可以改变其结构,从而破坏您的脚本。始终准备好调试和更新您的代码。
仅用几行 Python 代码,我们就构建了一个简单但功能强大的脚本来从新闻网站抓取文章标题。 BeautifulSoup 可以轻松导航和提取所需的数据,而 requests 则处理 HTTP 交互。
网络抓取可以释放大量机会,从监控趋势到自动化数据收集。请记住负责任地刮擦!
以上是简化网页抓取:使用 BeautifulSoup 提取文章标题的详细内容。更多信息请关注PHP中文网其他相关文章!