# 百度URL采集 跨平台版 **Repository Path**: byhandsome/WebUrlCollector ## Basic Information - **Project Name**: 百度URL采集 跨平台版 - **Description**: 这是一个基于ASP.NET Core开发的URL采集工具,支持通过关键字搜索采集百度搜索结果中的URL,并提供实时进度更新、URL去重和导出功能。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-28 - **Last Updated**: 2025-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # URL采集工具 这是一个基于ASP.NET Core开发的URL采集工具,支持通过关键字搜索采集百度搜索结果中的URL,并提供实时进度更新、URL去重和导出功能。 ## 功能特性 - **实时URL采集**:通过Server-Sent Events (SSE) 技术实现采集过程的实时进度更新 - **URL去重**:自动过滤重复域名,确保采集结果的唯一性 - **域名过滤**:可选过滤.gov.cn和.edu.cn域名 - **多页采集**:支持配置采集的搜索结果页数 - **导出功能**:支持将采集结果导出为文本文件 - **友好界面**:简洁易用的Web界面,操作直观 - **独立运行**:自包含部署,无需安装.NET运行时 ## 技术栈 - **后端**:ASP.NET Core 6.0 - **前端**:HTML, CSS, JavaScript - **网络请求**:HttpClient - **HTML解析**:AngleSharp - **实时通信**:Server-Sent Events (SSE) ## 快速开始 ### Windows系统运行方式 1. **双击运行**:在`publish`目录下双击`启动服务.bat`文件 2. **命令行运行**:在`publish`目录下执行`\WebUrlCollector.exe` ### Linux系统运行方式 1. **命令行运行**:在`linux-publish`目录下执行`chmod +x WebUrlCollector`赋予执行权限,然后执行`./WebUrlCollector` 2. **后台运行**:使用`nohup ./WebUrlCollector > app.log 2>&1 &`命令在后台运行 3. **服务运行**:配置为systemd服务(详见下方Linux系统部署说明) 服务启动后,在浏览器中访问:`http://localhost:5000` ### 使用方法 1. 在搜索框中输入关键字 2. 设置需要采集的页数 3. 可选:输入百度Cookie(提高采集成功率) 4. 点击「开始采集」按钮 5. 等待采集完成,可以实时查看进度和结果 6. 点击「导出结果」可以将采集到的URL保存为文本文件 ## 项目结构 ``` 关键字采集URL/ ├── Controllers/ # 控制器 │ └── UrlCollectorController.cs # URL采集控制器 ├── Program.cs # 应用程序入口 ├── WebUrlCollector.csproj # 项目文件 ├── wwwroot/ # 静态文件 │ └── index.html # 前端页面 └── publish/ # 发布目录 ├── WebUrlCollector.exe # 可执行文件 └── 启动服务.bat # 启动脚本 ``` ## 关键功能说明 ### URL去重机制 本工具使用`HashSet`存储已采集的URL,并通过解析域名实现重复域名的过滤,确保采集结果的唯一性和有效性。 ### 实时更新功能 通过Server-Sent Events (SSE) 技术,服务器可以主动向客户端推送采集进度、日志和结果,提供良好的用户体验。 ### 反爬策略 - 可配置百度Cookie - 采集过程中添加随机延迟 - 使用真实的浏览器User-Agent ## 构建与发布 ### Windows系统编译发布 ```bash # 编译发布为Windows独立可执行文件 dotnet publish -c Release -r win-x64 --self-contained true -o ./publish ``` ### Linux系统编译发布 ```bash # 编译发布为Linux独立可执行文件 dotnet publish -c Release -r linux-x64 --self-contained true -o ./linux-publish ``` ### Linux系统部署说明 #### 1. 文件传输 将`linux-publish`目录下的所有文件传输到Linux服务器上。 #### 2. 设置权限 ```bash # 赋予可执行权限 chmod +x WebUrlCollector ``` #### 3. 启动服务 ```bash # 前台运行(用于测试) ./WebUrlCollector # 后台运行(生产环境) nohup ./WebUrlCollector > app.log 2>&1 & ``` #### 4. 配置为系统服务(可选) 创建systemd服务文件: ```bash sudo nano /etc/systemd/system/weburlcollector.service ``` 添加以下内容: ``` [Unit] Description=URL Collector Service After=network.target [Service] WorkingDirectory=/path/to/linux-publish ExecStart=/path/to/linux-publish/WebUrlCollector Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target ``` 启用并启动服务: ```bash sudo systemctl enable weburlcollector.service sudo systemctl start weburlcollector.service ``` 查看服务状态: ```bash sudo systemctl status weburlcollector.service ``` ## 注意事项 1. **端口占用**:确保端口5000未被占用,Windows系统可使用`netstat -ano | findstr :5000`,Linux系统可使用`lsof -i :5000`检查 2. **采集限制**:采集速度过快可能触发百度反爬机制,建议合理设置采集页数 3. **Linux环境**:在Linux系统中运行时,确保删除任何Windows特有的代码(如批处理文件) 4. **安全建议**:生产环境建议配合Nginx等反向代理使用,添加HTTPS支持 5. **本工具仅用于学习和研究目的** ## 许可证 [MIT License](LICENSE) ## 贡献 欢迎提交Issue和Pull Request来改进这个项目! ## 联系方式 如有问题或建议,请联系项目维护者。