包含编程籽料、学习路线图、爬虫代码、安装包等!【点击这里领取!】
网络爬虫是数据采集的重要工具,Python凭借其丰富的库和简洁的语法,成为了爬虫开发的首选语言。本文将详细介绍四个常见的Python爬虫实战案例,帮助你从入门到精通。
目录
案例一:静态网页数据抓取
案例二:动态网页数据抓取
案例三:模拟登录与表单提交
案例四:数据存储与导出
1. 环境准备
在开始之前,确保你已经安装了以下Python库:
pip install requests
pip install beautifulsoup4
pip install selenium
pip install pandas
requests:用于发送HTTP请求。
beautifulsoup4:用于解析HTML文档。
selenium:用于处理动态网页。
pandas:用于数据存储与导出。
案例一:静态网页数据抓取
目标:抓取豆瓣电影Top250的电影名称和评分
实现步骤:
使用requests库发送HTTP请求,获取网页内容。
使用BeautifulSoup解析HTML文档,提取所需数据。
代码实现:
import requests
from bs4 import BeautifulSoup
# 目标URL
url = 'https://movie.douban.com/top250'
# 发送HTTP请求
response = requests.get(url)
html = response.text
# 解析HTML文档
soup = BeautifulSoup(html, 'html.parser')
# 提取电影名称和评分
movies = soup.find_all('div', class_='hd')
ratings = soup.find_all('span', class_='rating_num')
# 打印结果
for movie, rating in zip(movies, ratings):
print(f'电影名称:{movie.a.span.text},评分:{rating.text}')
运行结果:
电影名称:肖申克的救赎,评分:9.7
电影名称:霸王别姬,评分:9.6
...
案例二:动态网页数据抓取
目标:抓取京东商品列表的商品名称和价格
实现步骤:
使用selenium模拟浏览器操作,加载动态内容。
使用BeautifulSoup解析动态加载的HTML文档。
代码实现:
from selenium import webdriver
from bs4 import BeautifulSoup
import time
# 启动浏览器
driver = webdriver.Chrome()
# 目标URL
url = 'https://search.jd.com/Search?keyword=手机'
# 打开网页
driver.get(url)
time.sleep(3) # 等待页面加载
# 获取页面源码
html = driver.page_source
# 解析HTML文档
soup = BeautifulSoup(html, 'html.parser')
# 提取商品名称和价格
items = soup.find_all('div', class_='p-name')
prices = soup.find_all('div', class_='p-price')
# 打印结果
for item, price in zip(items, prices):
print(f'商品名称:{item.text.strip()},价格:{price.strong.i.text}')
# 关闭浏览器
driver.quit()
运行结果:
商品名称:Apple iPhone 13,价格:5999
商品名称:华为 Mate 50,价格:4999
...
案例三:模拟登录与表单提交
目标:模拟登录GitHub并获取用户信息
实现步骤:
使用requests库发送POST请求,提交登录表单。
使用session保持登录状态,访问需要登录的页面。
代码实现:
import requests
from bs4 import BeautifulSoup
# 登录URL
login_url = 'https://github.com/session'
# 创建会话
session = requests.Session()
# 登录表单数据
login_data = {
'login': 'your_username',
'password': 'your_password',
'authenticity_token': ''
}
# 获取登录页面的token
response = session.get('https://github.com/login')
soup = BeautifulSoup(response.text, 'html.parser')
token = soup.find('input', {'name': 'authenticity_token'})['value']
login_data['authenticity_token'] = token
# 提交登录表单
session.post(login_url, data=login_data)
# 访问用户页面
profile_url = 'https://github.com/your_username'
response = session.get(profile_url)
# 解析用户信息
soup = BeautifulSoup(response.text, 'html.parser')
name = soup.find('span', class_='p-name').text
print(f'用户名:{name}')
运行结果:
用户名:your_username
案例四:数据存储与导出
目标:将抓取的数据存储到CSV文件中
实现步骤:
使用pandas库将数据存储为DataFrame。
使用to_csv方法将数据导出为CSV文件。
代码实现:
import pandas as pd
# 示例数据
data = {
'电影名称': ['肖申克的救赎', '霸王别姬', '阿甘正传'],
'评分': [9.7, 9.6, 9.5]
}
# 创建DataFrame
df = pd.DataFrame(data)
# 导出为CSV文件
df.to_csv('movies.csv', index=False, encoding='utf-8-sig')
运行结果:
生成一个movies.csv文件,内容如下:
电影名称,评分
肖申克的救赎,9.7
霸王别姬,9.6
阿甘正传,9.5
总结
通过以上四个案例,你已经掌握了Python爬虫的基本技能:
静态网页数据抓取。
动态网页数据抓取。
模拟登录与表单提交。
数据存储与导出。
最后:
希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!
文末福利
最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【点击这里领取!】
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习