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 框架进行大规模爬取
– 反爬虫应对策略

爬虫是一把双刃剑,请合理合法使用。

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
4爷资源网 » Python爬虫入门:从零开始抓取网页数据

提供最优质的资源集合

立即查看 了解详情