欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > python爬虫基础讲解

python爬虫基础讲解

2025/4/3 10:05:24 来源:https://blog.csdn.net/2301_76971522/article/details/146957114  浏览:    关键词:python爬虫基础讲解

一、爬虫基础知识

1. 什么是爬虫?

  • 自动化的程序,模拟人类访问网页并获取所需数据
  • 应用场景:数据分析、价格监控、搜索引擎等

2. 爬虫流程

  1. 发送HTTP请求 → 2. 获取响应内容 → 3. 解析数据 → 4. 存储数据

3. 三个核心库

  • requests:发送HTTP请求
  • BeautifulSoup:解析HTML文档
  • lxml:高效解析库(BeautifulSoup的后端之一)

二、环境准备

  1. 安装Python(推荐3.6+版本)
  2. 安装所需库:
pip install requests beautifulsoup4

三、第一个爬虫实战

目标:获取豆瓣电影TOP250第一页的电影标题

import requests
from bs4 import BeautifulSoup# 1. 发送请求
url = "https://movie.douban.com/top250"
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. 解析数据
soup = BeautifulSoup(response.text, 'html.parser')
movie_list = soup.find_all('span', class_='title')# 3. 提取数据
for movie in movie_list:title = movie.get_text()if '/' not in title:  # 过滤中文标题print(title)

四、核心技能详解

1. 发送请求

# 带参数的请求
params = {'start': 25, 'filter': ''}
response = requests.get(url, headers=headers, params=params)# 处理超时(单位:秒)
response = requests.get(url, timeout=5)

2. 解析HTML
常用方法:

soup.select('div.item')  # CSS选择器
soup.find('div', attrs={'class': 'info'})  # 查找单个元素
soup.find_all('span', class_='rating_num')  # 查找多个元素

3. 数据存储
保存到CSV文件:

import csvwith open('movies.csv', 'w', newline='', encoding='utf-8') as f:writer = csv.writer(f)writer.writerow(['标题', '评分'])for movie in movies:writer.writerow([title, score])

五、应对反爬措施

常见反爬及解决方案

  1. User-Agent检测 → 添加请求头
  2. 频率限制 → 设置延时(time.sleep(2))
  3. 登录验证 → 使用session保持登录状态

改进后的请求头示例

headers = {"User-Agent": "Mozilla/5.0 (...)","Referer": "https://movie.douban.com/","Cookie": "your_cookie_here"  # 需定期更新
}

六、完整案例:爬取多页数据

import timefor page in range(0, 250, 25):url = f'https://movie.douban.com/top250?start={page}'response = requests.get(url, headers=headers)soup = BeautifulSoup(response.text, 'html.parser')# 解析逻辑...time.sleep(1)  # 礼貌性延时print(f'已爬取第{page//25 +1}页数据')

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词