Python爬虫入门:用requests库30分钟抓取电商数据并保存到Excel
·
前言
想学爬虫但不知道从哪开始?本文用最简单的 requests 库,带你30分钟内完成第一个电商数据采集项目。学完即可接单赚钱!
一、环境准备
pip install requests pandas openpyxl
二、requests库基础
requests 是 Python 最流行的 HTTP 库,4行代码就能抓取网页:
import requests
response = requests.get('https://www.example.com')
print(response.status_code) # 200
print(response.text[:500]) # 网页前500字符
核心参数
| 参数 | 说明 | 示例 |
|---|---|---|
| url | 请求地址 | https://api.example.com/data |
| headers | 请求头 | {‘User-Agent’: ‘Mozilla/5.0’} |
| params | URL参数 | {‘page’: 1, ‘size’: 20} |
| data | POST数据 | {‘username’: ‘admin’} |
| timeout | 超时时间 | 10 |
| proxies | 代理 | {‘https’: ‘http://ip:port’} |
三、实战:抓取电商商品数据
以某电商网站为例,抓取商品名称、价格、销量:
import requests
import pandas as pd
import time
import random
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Referer': 'https://www.example.com/',
'Accept': 'application/json',
}
def scrape_products(keyword, pages=5):
all_products = []
for page in range(1, pages + 1):
url = 'https://api.example.com/search'
params = {
'keyword': keyword,
'page': page,
'size': 20,
}
resp = requests.get(url, headers=headers, params=params, timeout=10)
if resp.status_code == 200:
data = resp.json()
for item in data.get('products', []):
all_products.append({
'商品名称': item.get('title'),
'价格': item.get('price'),
'销量': item.get('sales'),
'链接': item.get('url'),
})
time.sleep(random.uniform(1, 3))
return all_products
products = scrape_products('Python书籍', pages=5)
print(f'共抓取 {len(products)} 条数据')
四、保存到Excel
df = pd.DataFrame(products)
df.to_excel('商品数据.xlsx', index=False)
print('数据已保存到 商品数据.xlsx')
print(f"平均价格: {df['价格'].mean():.2f}")
print(f"最高价: {df['价格'].max()}")
print(f"最低价: {df['价格'].min()}")
五、反爬初探
遇到403或验证码?试试这些技巧:
1. 随机User-Agent
import fake_useragent
ua = fake_useragent.UserAgent()
headers = {'User-Agent': ua.random}
2. 使用代理IP
proxies = {
'http': 'http://127.0.0.1:7890',
'https': 'http://127.0.0.1:7890',
}
resp = requests.get(url, proxies=proxies)
3. 使用Session保持Cookie
session = requests.Session()
session.get('https://www.example.com')
resp = session.get('https://www.example.com/data')
## 六、接单变现指南
学会爬虫后怎么赚钱?
- 闲鱼接单:发布爬虫定制服务,单价 50-500元
- BOSS直聘:搜索"Python爬虫兼职",线上接单
- 程序员客栈:注册开发者,接派单项目
- 数据售卖:采集行业数据,打包卖给研究机构
- 自动化工具:开发爬虫工具,在CSDN/闲鱼售卖
总结
本文从零开始,用 requests 库完成了电商数据采集全流程。下一步可以学习 Playwright 处理JS渲染页面,突破更复杂的反爬。
专栏后续会更新:Selenium自动化、Playwright高级爬虫、反爬突破实战、数据清洗进阶等内容,欢迎关注!
有问题欢迎评论区交流,需要爬虫定制服务可以私信。
更多推荐




所有评论(0)