Python爬虫入门:从零开始抓取网页数据
## 一、什么是网络爬虫?
网络爬虫(Web Crawler)是一种自动化程序,模拟浏览器行为访问网页并提取数据。Python 因其简洁的语法和丰富的库,成为爬虫开发的首选语言。
## 二、环境准备
### 2.1 安装 Python
推荐使用 Python 3.8+ 版本,从官网下载安装。
### 2.2 安装核心库
“`bash
pip install requests beautifulsoup4 lxml
“`
– **requests**:发送 HTTP 请求
– **BeautifulSoup**:解析 HTML 页面
– **lxml**:高性能 XML/HTML 解析器
## 三、第一个爬虫程序
### 3.1 发送请求获取网页
“`python
import requests
url = ‘https://example.com’
headers = {
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36’
}
response = requests.get(url, headers=headers)
print(response.status_code) # 200 表示成功
print(response.text) # 页面 HTML 内容
“`
### 3.2 解析网页内容
“`python
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, ‘lxml’)
# 获取标题
title = soup.find(‘title’).text
print(f’页面标题: {title}’)
# 获取所有链接
links = soup.find_all(‘a’)
for link in links:
href = link.get(‘href’)
text = link.text
print(f'{text}: {href}’)
“`
### 3.3 提取特定数据
“`python
# 通过 CSS 选择器定位元素
articles = soup.select(‘.article-item’)
for article in articles:
title = article.select_one(‘.title’).text
author = article.select_one(‘.author’).text
print(f’标题: {title}, 作者: {author}’)
“`
## 四、常用选择器方法
| 方法 | 说明 | 示例 |
|——|——|——|
| find() | 找第一个元素 | soup.find(‘div’) |
| find_all() | 找所有元素 | soup.find_all(‘p’) |
| select() | CSS 选择器 | soup.select(‘.class’) |
| select_one() | CSS 选第一个 | soup.select_one(‘#id’) |
| get() | 获取属性 | link.get(‘href’) |
## 五、数据存储
### 5.1 保存到文件
“`python
import json
data = [
{‘title’: ‘文章1’, ‘url’: ‘http://…’},
{‘title’: ‘文章2’, ‘url’: ‘http://…’}
]
# JSON 格式
with open(‘data.json’, ‘w’, encoding=’utf-8′) as f:
json.dump(data, f, ensure_ascii=False, indent=2)
# CSV 格式
import csv
with open(‘data.csv’, ‘w’, newline=”, encoding=’utf-8′) as f:
writer = csv.DictWriter(f, fieldnames=[‘title’, ‘url’])
writer.writeheader()
writer.writerows(data)
“`
## 六、注意事项
1. **遵守 robots.txt**:检查网站是否允许爬取
2. **控制频率**:添加延时避免给服务器造成压力
3. **设置 User-Agent**:模拟正常浏览器访问
4. **处理异常**:网络请求可能失败,需要 try-except
“`python
import time
import random
# 随机延时 1-3 秒
time.sleep(random.uniform(1, 3))
“`
## 七、总结
本文介绍了 Python 爬虫的基础知识,包括环境配置、请求发送、页面解析、数据存储。下一步可以学习:
– 处理动态加载页面(Selenium、Playwright)
– 使用 Scrapy 框架进行大规模爬取
– 反爬虫应对策略
爬虫是一把双刃剑,请合理合法使用。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
4爷资源网 » Python爬虫入门:从零开始抓取网页数据