简单 Python 爬虫程序设计

爬虫是获取网页数据的常用工具,我们一起来设计一个基于 requests 和 BeautifulSoup 的简单爬虫,它可以获取网页内容并提取文本信息。

所需库安装

首先需要安装两个必要的库:

pip install requests beautifulsoup4

完整代码

import requests

from bs4 import BeautifulSoup

import time

import random

import os

def simple_crawler(url, save_dir="crawled_data"):

"""

简单网页爬虫程序

:param url: 要爬取的网页URL

:param save_dir: 保存数据的目录

:return: 爬取的文本内容

"""

try:

模拟浏览器请求头,避免被识别为爬虫

headers = {

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"

}

发送GET请求

response = requests.get(url, headers=headers, timeout=10)

检查请求是否成功

if response.status_code == 200:

设置正确的编码(处理中文乱码)

response.encoding = response.apparent_encoding

使用BeautifulSoup解析HTML

soup = BeautifulSoup(response.text, 'html.parser')

提取所有文本内容

all_text = soup.get_text()

创建保存目录(如果不存在)

if not os.path.exists(save_dir):

os.makedirs(save_dir)

保存内容到文件

filename = f"{save_dir}/{url.split('//')[-1].split('/')[0].replace('.', '')}{int(time.time())}.txt"

with open(filename, 'w', encoding='utf-8') as f:

f.write(all_text)

print(f"成功爬取并保存内容到 {filename}")

return all_text

else:

print(f"请求失败,状态码: {response.status_code}")

return None

except requests.exceptions.RequestException as e:

print(f"请求异常: {e}")

return None

except Exception as e:

print(f"发生错误: {e}")

return None

if name == "main":

要爬取的网址(请替换为你想爬取的合法网址)

target_url = "https://example.com"

执行爬取

content = simple_crawler(target_url)

if content:

打印前500个字符(可选)

print(f"\n爬取内容预览:\n{content[:500]}...")

代码功能解析

这个爬虫程序主要包含以下几个部分:

  • 请求头设置:模拟浏览器请求头,降低被网站反爬机制识别的概率

  • 请求发送:使用 requests 库发送HTTP GET请求获取网页内容

  • 内容解析:通过 BeautifulSoup 解析HTML,提取纯文本内容

  • 数据保存:将爬取的内容保存到本地文本文件中

  • 异常处理:包含请求异常和通用异常处理,增强程序稳定性

使用注意事项

  1. 替换URL:将代码中的 https://example.com 替换为你想爬取的合法网址

  2. 遵守规则:爬取前请阅读网站的 robots.txt ,遵守网站爬取规则

  3. 控制频率:代码中可添加 time.sleep(random.uniform(1, 3)) 来控制爬取间隔,避免对服务器造成压力

  4. 合法用途:请确保爬取行为用于学习、研究等合法用途,避免侵犯他人权益。

相关推荐
禹凕1 小时前
Python编程——进阶知识(多线程)
开发语言·爬虫·python
程序媛徐师姐2 小时前
Python基于爬虫的网络小说数据分析系统【附源码、文档说明】
爬虫·python·python爬虫·网络小说数据分析系统·pytho网络小说数据分析系统·python爬虫网络小说·python爬虫的网络小说数据
jianghua0013 小时前
Python中的简单爬虫
爬虫·python·信息可视化
喵手3 小时前
Python爬虫实战:针对Python官网,精准提取出每一个历史版本的版本号、发布日期以及对应的文档/详情页链接等信息,并最终清洗为标准化的CSV文件!
爬虫·python·爬虫实战·零基础python爬虫教学·python官方数据采集·采集历史版本版本号等信息·导出csv文件
其美杰布-富贵-李3 小时前
爬虫中 XPath 使用完全指南
爬虫·xpath
喵手3 小时前
Python爬虫实战:城市停车收费标准自动化采集系统 - 让停车费透明化的技术实践(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·城市停车收费标准·采集城市停车收费数据·采集停车数据csv文件导出
喵手5 小时前
Python爬虫实战:采集菜谱网站的“分类/列表页”(例如“家常菜”或“烘焙”频道)数据,构建高可用的美食菜谱数据采集流水线(附CSV导出)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集菜谱网站数据·家常菜或烘焙频道·构建高可用食谱数据采集系统
喵手5 小时前
Python爬虫实战:硬核解析 Google Chrome 官方更新日志(正则+文本清洗篇)(附 CSV 导出)!
爬虫·python·爬虫实战·零基础python爬虫教学·csv导出·监控谷歌版本发布历史·获取稳定版更新日志
深蓝电商API18 小时前
处理字体反爬:woff字体文件解析实战
爬虫·python
NPE~19 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化