包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取】
下面我将为你提供一个Python爬虫入门实例,包含7个简单的爬虫案例,适合初学者学习。这些案例涵盖了基本的网页抓取、数据解析和存储等常见操作。
案例1:获取网页内容(urllib)
import urllib.request
# 最简单的爬虫 - 获取网页内容
url = "http://www.example.com"
response = urllib.request.urlopen(url)
content = response.read().decode('utf-8')
print(content[:500]) # 打印前500个字符
案例2:使用Requests库获取网页
import requests
# 使用更友好的requests库
url = "https://www.csdn.net/"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers)
print(response.status_code) # 打印状态码
print(response.text[:500]) # 打印前500个字符
案例3:解析HTML(BeautifulSoup)
from bs4 import BeautifulSoup
import requests
# 解析CSDN首页文章标题
url = "https://blog.csdn.net/"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 查找所有文章标题(根据实际网站结构调整选择器)
titles = soup.select('h2 a') # 示例选择器,实际需要根据网站结构调整
for i, title in enumerate(titles[:10], 1): # 只显示前10个
print(f"{i}. {title.text.strip()}")
案例4:爬取图片并保存
import os
import requests
from bs4 import BeautifulSoup
# 创建保存图片的文件夹
if not os.path.exists('images'):
os.makedirs('images')
# 示例:爬取某个网页中的图片
url = "https://www.example.com/images" # 替换为实际图片页面
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
img_tags = soup.find_all('img')
for img in img_tags[:5]: # 只下载前5张图片
img_url = img.get('src')
if img_url.startswith('http'):
try:
img_data = requests.get(img_url).content
img_name = os.path.join('images', os.path.basename(img_url))
with open(img_name, 'wb') as f:
f.write(img_data)
print(f"下载完成: {img_name}")
except Exception as e:
print(f"下载失败: {img_url}, 错误: {e}")
案例5:爬取表格数据
import pandas as pd
# 使用pandas直接读取网页表格
url = "https://en.wikipedia.org/wiki/List_of_countries_by_GDP_(nominal)"
tables = pd.read_html(url) # 读取网页中的所有表格
# 假设我们需要第一个表格
gdp_table = tables[1] # 通常需要查看哪个表格是我们需要的
print(gdp_table.head()) # 打印前5行
案例6:使用API获取数据
import requests
import json
# 使用公开API获取数据
api_url = "https://api.github.com/users/octocat" # GitHub API示例
response = requests.get(api_url)
data = json.loads(response.text)
print("GitHub用户信息:")
print(f"用户名: {data['login']}")
print(f"姓名: {data.get('name', '无')}")
print(f"粉丝数: {data['followers']}")
print(f"仓库数: {data['public_repos']}")
案例7:模拟登录(简单示例)
import requests
from bs4 import BeautifulSoup
# 模拟登录示例(以简易网站为例)
login_url = "https://www.example.com/login" # 替换为实际登录URL
payload = {
'username': 'your_username', # 替换为你的用户名
'password': 'your_password' # 替换为你的密码
}
with requests.Session() as session:
# 首先获取登录页,可能需要获取csrf token等
login_page = session.get(login_url)
soup = BeautifulSoup(login_page.text, 'html.parser')
# 这里可以提取csrf token等必要字段添加到payload中
# 发送登录请求
response = session.post(login_url, data=payload)
# 检查是否登录成功
if "欢迎" in response.text: # 根据实际成功页面调整
print("登录成功!")
# 访问需要登录的页面
profile_url = "https://www.example.com/profile"
profile_page = session.get(profile_url)
print(profile_page.text[:500]) # 打印前500个字符
else:
print("登录失败")
注意事项
设置请求头:特别是User-Agent,模拟浏览器行为
控制请求频率:避免给服务器造成过大压力,可以添加延时:
import time
time.sleep(1) # 延时1秒
异常处理:网络请求可能失败,添加try-except块
合法性:仅爬取允许公开访问的数据,不爬取个人隐私或受版权保护的内容
希望这7个案例能帮助你入门Python爬虫!每个案例都可以进一步扩展和完善,根据实际需求进行调整。
最后:
希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!
文末福利
最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【点击这里领取!】
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习