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 许可协议,转载请注明出处。
相关文章