本教程使用Chrome

最近看到了个网站:https://sc.chinaz.com/tubiao/
上面有1万多个图标
所以点一波鼠标图标(也可以换成别的):

URL:

https://sc.chinaz.com/tag_tubiao/DianNao.html

开F12:

可以看到class为pngblock pks imgload的ul存放了这堆超链接:

找到超链接,在li标签下的span里:

右键 Open in a new tab
URL:

https://sc.chinaz.com/tubiao/201021283110.htm


点一下每个图片上的ICO:

我直呼好家伙……

开F12,找到ICO,是个class为ico_b的a标签:

写代码

安装第三方库:

pip install requests
pip install beautifulsoup4

python代码:

import os
import requests
from bs4 import BeautifulSoup
def download_icons_from_chinaz(url, save_path='images', headers=None,encoding='utf-8', parser='html.parser',ul_class_name='pngblock pks imgload',max_download=30):if not os.path.isdir(save_path):os.mkdir(save_path)if headers is None:headers = {'User-Agent': ('Mozilla/5.0 (Windows NT 6.2; WOW64) ''AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/30.0.1599.17 Safari/537.36')}  # 伪装请求头response = requests.get(url, headers=headers)response.encoding = encodingsoup = BeautifulSoup(response.text, parser)  # beautifulsoup解析ul = soup.find('ul', attrs={'class': ul_class_name})lis = ul.find_all('li')urls = []for li in lis:span = li.find('span')a = span.find('a')href = a['href']  # 获取每个页面的urlurls.append(href)images = []for url in urls:url = 'https:' + url  # 由获取到的url是“//”开头的,加上“https:”response = requests.get(url, headers=headers)  # requests请求response.encoding = encodingsoup = BeautifulSoup(response.text, parser)  # beautifulsoup解析div = soup.find('div', attrs={'class': 'down_img'})icons = div.find_all('a', attrs={'class': 'ico_b'})for a in icons:href = a['href']images.append(href)n = 0for im in images:print('█', flush=True, end='')  # 显示进度条n += 1if n > max_download:breakpath = os.path.join(save_path, f'{n}.ico')response = requests.get(im, headers=headers)with open(path, 'wb') as fp:fp.write(response.content)
参数 意义 类型
url 类似我的https://sc.chinaz.com/tag_tubiao/DianNao.html str
save_path 图片保存的文件夹 str
headers 自定义请求头 dict
encoding 网页编码 str
parser beautifulsoup解析器 str
ul_class_name 存放a标签的ul的class str
max_download 最大下载数量 int

注意:连续爬图片可能请求频繁,加个time.sleep就好了


nice!

python 爬虫下载ico相关推荐

  1. python 爬虫下载网易歌单歌曲

    python 爬虫下载网易歌单歌曲 可以根据歌单 id 来下载歌单中的所有音乐,付费音乐除外 可以自己输入歌单 id 来进行单个歌单下载,也可以结合上一篇文章 爬取网易云音乐所有歌单信息 先取到所有的 ...

  2. Python爬虫——下载音乐

    Python爬虫--下载音乐 1.调用需要库 安装库: Windows + R 输入cmd 后 执行下面这两行 pip install requests -i https://pypi.tuna.ts ...

  3. python爬虫 下载视频网站视频

    python爬虫 下载视频网站视频 xpath解析页面源码 requests.Session() 解决 status_code 302 网页重定向 selenium 获取网页遇到 iframe 标签解 ...

  4. python爬虫下载王者荣耀图片

    python爬虫下载王者荣耀图片 腾讯课堂白嫖的一堂课,大佬勿喷. import requests import jsondata = requests.get('http://pvp.qq.com/ ...

  5. Python爬虫下载王者荣耀全皮肤

    python爬虫下载王者荣耀全皮肤 import requests import os from time import timestart = time() headers = {'User-Age ...

  6. Python爬虫——下载PPT模板

    Python爬虫--下载PPT模板 1.调用需要库 安装库: Windows + R 输入cmd 后 执行下面这两行 pip install requests pip install lxml imp ...

  7. python爬虫下载影视网站的电影

    python爬虫下载影视网站的电影 我这边选取了vip网站 F12打开调试抓包模式 搜索影片的名称, 观察看看给那个url地址发送了请求, 我看到了 这个请求需要携带发送数据 而这个数据就是我们要的影 ...

  8. 利用Python爬虫下载王者荣耀教学视频

    前言: 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. 那么针对这三类人,我给 ...

  9. python爬虫下载-python爬虫之下载文件的方式总结以及程序实例

    python爬虫之下载文件的方式以及下载实例 目录 第一种方法:urlretrieve方法下载 第二种方法:request download 第三种方法:视频文件.大型文件下载 实战演示 第一种方法: ...

最新文章

  1. 北美欧洲顶级大咖齐聚,在这里读懂 AIoT 未来!
  2. Python核心编程学习日记之错误处理
  3. 第29天:控制进度,控制进度知识点,敏捷中控制进度知识点
  4. FPGA重要设计思想
  5. 程序员可以只关心技术么?
  6. 聚合 aggregate
  7. WordPress建站指南
  8. python课程结课感悟_科学网—《互联网+引论与Python》课堂感想(七) - 张忆文的博文...
  9. Intellij IDEA 14.x 菜单项中Compile、Make和Build的区别
  10. java 通过 socket 实现 服务器和客户端的通信 TCP
  11. 最小生成树 POJ - 3522(枚举边最小生成树)
  12. 【转】C# SqlServer操作辅助类(SqlServerHelper.cs)
  13. 慧荣SM2259XT主控贴镁光B27A测试分享,SM2258XT、SM2259XT2可参考
  14. Java开发者必备十大学习网站
  15. 测试内存条是否兼容软件,18款内存条兼容性测试
  16. 设计模式 | 单例模式
  17. 信号完整性(SI)电源完整性(PI)学习笔记(五)电容的物理基础
  18. 从键盘输入n个数 求其中的最大数
  19. 33岁,工作10年的老测试员被裁,所谓经验根本不值钱
  20. MySQL笔记--2、3、4、5

热门文章

  1. php记录xml到txt,提取xml文档的内容到.txt文件中
  2. 【机器学习】机器学习基本概念/术语
  3. 2021冬-不靠谱的老板-使用 Siri 运行快捷指令
  4. 2017计算机省一试题及答案,2017年全国计算机等级考试一级练习试题及答案(一)...
  5. 用计算机重启手机软件,手机“关机再启动”和“重启”有区别? 收藏下, 让手机更耐用些...
  6. 本科毕业论文开题报告万能模板!
  7. js 获取father_JavaScript中获取高度和宽度函数总结
  8. 技术分享 | 测试开发工程师必读经典好书清单,抽奖赠书送福利!
  9. 抖音的运营技巧是什么?分享5个小技巧
  10. 三星s8怎么分屏操作_一心三用 三星Galaxy Z Fold2 5G成多任务处理大师_