type
status
date
slug
summary
tags
category
icon
password
一、爬虫爬取图片
代码
运行结果:


出现的问题:
1. 接口反爬虫问题
- 问题现象:返回
{'antiFlag': 1, 'message': 'Forbid spider access'}。
- 解决方法:
一定要加
User-Agent、Referer头,把请求“伪装”成正常浏览器访问。避免请求频率过高,可以适当加
time.sleep。2. 返回数据结构易变、容易出错
- 问题现象:
有时
data["data"]/data["images"]为列表,元素不全是字典,可能有{}或""。字段名有大写小写之分,如
objURL和objurl,接口升级后字段名可能变化。有时候最后一个元素为空字典,不能直接遍历。
- 解决方法:
遍历时用
isinstance(img, dict)过滤。取字段用
img.get("objURL") or img.get("objurl")。不要用
img["objURL"],要用get()方法防止KeyError。写代码前可以先
print(images)看看返回什么样子。3. 请求/下载图片容易出错
- 问题现象:
图片URL失效、超时、下载失败,导致程序崩溃或报错。
- 解决方法:
加
try...except异常捕获,下载失败时不影响后续。可以加超时时间,防止一直卡住:
requests.get(img_url, timeout=8)检查
image.status_code == 200才保存。二、自定义模块和包的导入
在Python中,模块和包的导入非常灵活,如上篇博文提到过的一样,主要有以下几种方式:
1. import导入
2. from ... import ... 语法
3. as起别名
4. 导入包中的模块
假设有如下包结构:
使用方式如下:
注意事项
- 包目录下必须有
__init__.py文件(哪怕是空文件),否则Python不会把该目录当作包。
- 同名模块/包,Python会优先导入当前项目目录下的。
三、第三方模块管理
Python拥有丰富的第三方库,主要通过
pip工具进行管理。1. 安装第三方模块
2. 卸载第三方模块
3. 导出所有依赖到txt
常见于项目迁移或部署时:
4. 通过requirements.txt安装依赖
四、第三方模块学习:Numpy初步
1. 安装Numpy
2. ndarray的各种创建方式
3. ndarray的属性
4. ndarray的切片与索引
- 作者:sisui
- 链接:https://www.sisui.me//article/py-modular-programming-concepts
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章


