type
status
date
slug
summary
tags
category
icon
password

一、爬虫爬取图片

代码

运行结果:

notion image
notion image
 

出现的问题:

1. 接口反爬虫问题

  • 问题现象:返回{'antiFlag': 1, 'message': 'Forbid spider access'}
  • 解决方法
    • 一定要加User-AgentReferer头,把请求“伪装”成正常浏览器访问。
      避免请求频率过高,可以适当加time.sleep

2. 返回数据结构易变、容易出错

  • 问题现象
    • 有时data["data"]/data["images"]为列表,元素不全是字典,可能有{}""
      字段名有大写小写之分,如objURLobjurl,接口升级后字段名可能变化。
      有时候最后一个元素为空字典,不能直接遍历。
  • 解决方法
    • 遍历时用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的切片与索引

 
7.py-迭代器和生成器的区别及其各自实现方式和使用场景9.py-图像基础:使用 OpenCV 探索计算机视觉
Loading...