当前位置: 首页 > java >正文

Python 爬虫基础入门教程(超详细)

一、什么是爬虫?

网络爬虫(Web Crawler),又称网页蜘蛛,是一种自动抓取互联网信息的程序。爬虫会模拟人的浏览行为,向网站发送请求,然后获取网页内容并提取有用的数据。


二、Python爬虫的基本原理

爬虫的基本工作流程如下:

  1. 发送请求:使用 requests 等库向目标网站发送 HTTP 请求。

  2. 获取响应:服务器返回 HTML 页面内容。

  3. 解析数据:使用 BeautifulSouplxmlre 提取所需的数据。

  4. 保存数据:将数据保存为 CSV、Excel、数据库等格式。


三、搭建一个简单的 Python 爬虫

1. 安装必要的库

pip install requests beautifulsoup4

2. 示例目标:爬取豆瓣电影 Top 250 的电影名称

地址:豆瓣电影 Top 250

3. 基本代码结构

import requests
from bs4 import BeautifulSoup# 设置请求头,模拟浏览器访问
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
}# 循环每一页(每页25部电影,共10页)
for page in range(0, 250, 25):url = f'https://movie.douban.com/top250?start={page}'response = requests.get(url, headers=headers)if response.status_code == 200:soup = BeautifulSoup(response.text, 'html.parser')movie_tags = soup.find_all('div', class_='hd')for tag in movie_tags:title = tag.a.span.textprint(title)else:print(f"请求失败:{response.status_code}")

4. 运行结果(部分)

肖申克的救赎
霸王别姬
阿甘正传
这个杀手不太冷
...

四、常见反爬机制及应对

1. User-Agent 检查

→ 解决方法:自定义请求头。

2. 频繁请求封 IP

→ 解决方法:使用 time.sleep() 控制请求间隔,或使用代理。

3. 动态加载页面(JS 渲染)

→ 解决方法:使用 Selenium 或 Playwright 等浏览器自动化工具。


五、进阶:使用 Selenium 爬取动态网页

pip install selenium

代码示例(以百度为例):

from selenium import webdriver
from selenium.webdriver.common.by import By
import timedriver = webdriver.Chrome()
driver.get('https://www.baidu.com')search_box = driver.find_element(By.ID, 'kw')
search_box.send_keys('Python 爬虫')search_button = driver.find_element(By.ID, 'su')
search_button.click()time.sleep(2)print(driver.page_source)  # 打印网页HTMLdriver.quit()

六、数据保存(CSV 示例)

import csvwith open('movies.csv', 'w', newline='', encoding='utf-8') as f:writer = csv.writer(f)writer.writerow(['电影名称'])for title in movie_titles:writer.writerow([title])

七、建议与注意事项

  • 尊重网站的 Robots.txt 协议,不恶意爬取。

  • 控制请求频率,避免造成服务器负担。

  • 爬虫只是工具,数据的合法使用才是重点。


八、结语

本教程只是 Python 爬虫的入门介绍,后续还可以学习更多内容,比如:

  • Scrapy 框架

  • 多线程爬虫

  • 分布式爬虫(如结合 Redis)

  • 反爬机制绕过技巧

  • 数据可视化与分析

如果你刚入门 Python 爬虫,建议从小项目练起,熟悉请求与解析的流程,再逐步扩展。

http://www.xdnf.cn/news/4957.html

相关文章:

  • 代发考试战报:思科华为HCIP HCSE CCNP 考试通过
  • CSS:盒子模型
  • Missashe计网复习笔记(随时更新)
  • C++:求分数序列和
  • 23盘古石决赛
  • docker 镜像的导出和导入(导出完整镜像和导出容器快照)
  • Java 匿名内部类的作用
  • IM系统群消息推送方案
  • 多模型协同预测在风机故障预测的应用(demo)
  • 订阅“科技爱好者周刊”,每周五与你相约科技前沿!
  • Docker下Gogs设置Webhook推送Spug,踩坑记录与解决方案
  • Git clone时出现SSL certificate problem unable to get local issuer certificate
  • 安装docker
  • 【网络编程】四、守护进程实现 前后台作业 会话与进程组
  • ChatTempMail - AI驱动的免费临时邮箱服务
  • 线程中常用的方法
  • PX4开始之旅(二)通过自定义 MAVLink 消息与 QGroundControl (QGC) 通信
  • 开源数字人框架 AWESOME - DIGITAL - HUMAN:技术革新与行业标杆价值剖析
  • AWS IoT Core与MSK集成实战:打造高可靠实时IoT数据管道
  • 探索表访问方法功能:顺序扫描分析
  • 复合机器人案例启示:富唯智能如何以模块化创新引领工业自动化新标杆
  • Oracle版本、补丁及升级(12)——版本体系
  • [C#] async和await(腾讯元宝)
  • 从逻辑学视角理解统计学在数据挖掘中的作用
  • 数据结构-堆
  • C++中static关键字详解:不同情况下的使用方式
  • 谷云科技iPaaS发布 MCP Server加速业务系统API 跨入 MCP 时代
  • JAVA将一个同步方法改为异步执行
  • CAN转ModbusTCP网关:破解电池生产线设备协议壁垒,实现全链路智能互联
  • 单调栈所有模版类型(4)