Python 爬虫基础教程
爬虫概念与用途
网络爬虫(Web Crawler)模拟浏览器发送网络请求,接收响应,按规则自动抓取互联网信息。原则上,只要是浏览器能做的事情,爬虫都能做。
在互联网大数据时代,信息获取自由但碎片化严重。通过爬虫技术收集、筛选和分析相关内容,可应用于生活服务、金融投资、产品需求分析等领域,帮助获取精准有效的信息。
准备工作
虽然多种语言支持爬虫开发,但 Python 因语法简单、功能齐全而成为首选。
- 环境搭建:安装 Python 3.x 版本及 IDE(如 PyCharm)。
- 依赖库:
requests:发送 HTTP 请求。BeautifulSoup4:解析 HTML 数据。xlwt:操作 Excel 文件保存数据。re:正则表达式匹配(可选)。
项目实战:爬取豆瓣电影 Top250
目标网站:https://movie.douban.com/top250
需抓取字段包括:电影详情链接、图片链接、影片中文名、外国名、评分、评价数、概况及相关信息。
代码实现
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import re
import xlwt
# 配置基础 URL
base_url = "https://movie.douban.com/top250?start="
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"
}
def get_html(url):
"""获取网页内容"""
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
response.encoding = response.apparent_encoding
return response.text
except Exception as e:
print(f"Error: {e}")
return None
def parse_data():
soup = BeautifulSoup(html, )
items = soup.find_all(, class_=)
data_list = []
item items:
title = item.find(, class_=).get_text(strip=)
rating = item.find(, class_=).get_text()
info = item.find(, class_=).get_text(strip=).replace(, ) item.find(, class_=)
data_list.append([title, rating, info])
data_list
():
book = xlwt.Workbook(encoding=)
sheet = book.add_sheet()
headers = [, , ]
i, h (headers):
sheet.write(, i, h)
row_idx, row_data (data):
col_idx, cell_data (row_data):
sheet.write(row_idx + , col_idx, (cell_data))
book.save(filename)
()
():
all_data = []
i ():
url = base_url + (i * )
html = get_html(url)
html:
data = parse_data(html)
all_data.extend(data)
save_to_excel(all_data)
__name__ == :
main()


