(Python)Python爬虫入门教程:从零开始学习网页抓取(爬虫教学)(Python教学)

一、爬虫基础概念

什么是爬虫?

网络爬虫(Web Crawler)是一种自动获取网页内容的程序,它像蜘蛛一样在互联网上"爬行",收集和提取数据。

爬虫应用场景:

  1. 搜索引擎(Google、百度)

  2. 价格监控(电商比价)

  3. 舆情分析(社交媒体监控)

  4. 数据采集(研究、分析)

二、环境准备

1. 安装Python

2. 安装必要库(命令行执行)

python 复制代码
pip install requests beautifulsoup4 pandas

3. 安装开发工具(可选)

推荐使用VS Code:Visual Studio Code - Code Editing. Redefined

三、第一个爬虫:获取网页标题

1. 创建文件 first_crawler.py

python 复制代码
import requests
from bs4 import BeautifulSoup

# 目标网址
url = "https://example.com"

# 发送HTTP请求
response = requests.get(url)

# 检查请求是否成功
if response.status_code == 200:
    # 解析HTML内容
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 提取网页标题
    title = soup.title.string
    print(f"网页标题: {title}")
else:
    print(f"请求失败,状态码: {response.status_code}")

2. 运行爬虫

python 复制代码
python first_crawler.py

输出结果:

python 复制代码
网页标题: Example Domain

四、爬虫核心组件详解

1. requests库 - 发送HTTP请求

python 复制代码
# GET请求
response = requests.get(url)

# POST请求
response = requests.post(url, data={'key': 'value'})

# 添加请求头(模拟浏览器)
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'
}
response = requests.get(url, headers=headers)

2. BeautifulSoup - 解析HTML

python 复制代码
from bs4 import BeautifulSoup

# 创建解析器对象
soup = BeautifulSoup(html_content, 'html.parser')

# 查找元素
# 通过标签名
soup.find('div')          # 查找第一个div
soup.find_all('a')        # 查找所有a标签

# 通过类名
soup.find(class_='header')

# 通过ID
soup.find(id='main-content')

# 组合查找
soup.find('div', class_='article', id='post-123')

五、爬虫道德与法律

爬虫行为准则:

  1. 尊重robots.txt:检查目标网站的爬虫协议

  2. 限制请求频率:避免对网站造成过大负担

  3. 不爬取敏感信息:如个人隐私、版权内容

  4. 遵守网站条款:查看网站的使用条款

如何检查robots.txt:

在网站根目录后添加/robots.txt,例如:
https://example.com/robots.txt

多说一句:

代码:title=soup.title.string中的第二个title哪来的?

这个title其实是网页中的title标签,如:

这里的内容是WEB里面的相关知识,这里不过多叙述。

注:该代码是本人自己所写,可能不够好,不够简便,欢迎大家指出我的不足之处。如果遇见看不懂的地方,可以在评论区打出来,进行讨论,或者联系我。上述内容全是我自己理解的,如果你有别的想法,或者认为我的理解不对,欢迎指出!!!如果可以,可以点一个免费的赞支持一下吗?谢谢各位彦祖亦菲!!!!

相关推荐
神也畏惧菠萝43 分钟前
Day08 Python流程控制从入门到上瘾:if/match/while/for四件套,从B站登录一路打到猜数字游戏
python·算法·数据存储·for·while·if·ifelse
言乐61 小时前
通过 3D 动画直观演示球形瓶内可滑动半圆机构在倾倒时防粘盖、回正时刮膏体的运动学过程
python·3d·django·virtualenv·pygame
ZWZhangYu1 小时前
从 Dify 实践理解大模型上下文缓存
java·后端·spring
quantdash_cc1 小时前
ETF 行情数据清洗实战:字段语义拆解、标的池整理与五个校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
小熊恋旧1 小时前
Python 面向对象编程:方法、属性、继承与多态详解
开发语言·python
架构师伯子明1 小时前
Ros 学习十三:IK Demo
学习
小羊没烦恼!1 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
NeoGressAI外贸数字化1 小时前
外贸独立站robots.txt怎么写:6个AI爬虫放行规则
人工智能·爬虫
威哥爱编程2 小时前
Python 智能体开发实战 05:一问教材内容它就编?先把答案从你自己的资料里检索出来
python·agent
幼儿园蛋小黄2 小时前
从 STM32N647 的 AI 部署入门嵌入式:一条可落地的学习路线
人工智能·stm32·学习