# 爬虫 **Repository Path**: stoneqweadsa/spider ## Basic Information - **Project Name**: 爬虫 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-24 - **Last Updated**: 2026-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 爬虫项目 (Spider) ## 项目简介 本项目是一个使用 Python 实现的简单网页爬虫,主要功能是从 `news.cn`(新华网)抓取指定新闻文章的标题和正文内容。 ## 技术栈 - **Python**:编程语言 - **requests**:HTTP 请求库,用于发送网络请求 - **BeautifulSoup (bs4)**:HTML 解析库,用于从网页中提取数据 ## 环境安装 推荐使用 `uv` 进行包管理: ```bash # 创建虚拟环境 uv venv # 安装依赖 uv pip install requests bs4 ``` 如使用传统 `pip`: ```bash pip install requests beautifulsoup4 ``` ## 爬虫基本方法论 一个完整的爬虫流程通常包含以下步骤: ### 1. 明确目标 - 确定要爬取的网站与数据(标题、正文、图片、评论等) - 分析目标页面的 URL 结构与数据所在位置 ### 2. 构造请求 - 携带合理的 `User-Agent` 等 `Headers`,模拟浏览器访问,避免被反爬 - 处理 Cookie、Referer、Token 等可能需要的请求参数 ### 3. 发送请求并处理响应 - 使用 `requests.get()` / `requests.post()` 发起请求 - 检查响应状态码(如 `200`),判断请求是否成功 ### 4. 解析数据 - 使用解析器(`html.parser`、`lxml`、`html5lib` 等)将 HTML 文本解析为可遍历的树结构 - 通过标签、id、CSS 类、属性等定位目标元素 - 提取所需文本或链接 ### 5. 数据清洗与存储 - 去除多余空白、特殊字符等 - 保存到文件(CSV、JSON、数据库)或持久化存储 ### 6. 反爬与合规 - 控制爬取频率(添加 `sleep`) - 遵守目标站点的 `robots.txt` 协议 - 仅用于学习与合法用途,尊重数据版权 ## 基本框架模板 ```python import requests from bs4 import BeautifulSoup # 1. 请求头:模拟浏览器 headers = { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36" } # 2. 目标 URL url = "https://www.news.cn/20260924/056307e595b7449894a142835dde1f97/c.html" # 3. 发送请求 resp = requests.get(url, headers=headers) # 4. 解析响应 if resp.status_code == 200: soup = BeautifulSoup(resp.text, "html.parser") # 5. 提取数据 title = soup.find("span", class_="title").get_text(strip=True) print(title) for p in soup.find("span", id="detailContent").find_all("p"): print(p.get_text(strip=True)) else: print(f"请求失败,状态码:{resp.status_code}") ``` ## 运行方式 ```bash # 激活虚拟环境(Windows PowerShell) .\.venv\Scripts\Activate.ps1 # 运行爬虫 python 1.py ``` 运行成功后,将在终端打印新闻标题以及每一段正文内容。 ## 文件结构 ``` spider/ ├── 1.py # 爬虫主程序 ├── README.md # 项目说明文档 └── .venv/ # 虚拟环境(运行后生成) ``` ## 注意事项 - 本示例仅用于学习与演示,请勿用于商业用途或大规模爬取 - 实际爬取时请遵循目标网站的使用条款 - 若网站结构发生变化,需要相应调整解析规则