声明:
全网最菜,只是记录分享,虚心接受点评

任务爬取目标网站PPT模版

目标地址:http://www.1ppt.com/

分析网站结构

通过观察,我们找到模版导航,获取每一个模版导航的URL,可以跳转到相应的子链接,通过子链接页面,可以获取相应PPT模版URL,从而获取每个对应模版下载链接,最后发送请求保存下载结束.

任务分解

1.获取每个子模版URL
2.创建线程池
3.定义线程池任务
4.任务定义(在子页面获取每个PPT模版URL,在获取下载链接,请求保存)

注意事项

此网站没有反爬,需要注意编码转换(会有乱码)
代码仅供学习交流,如作他用所承受的法律责任一概与作者无关(下载使用即代表你同意上述观点)

环境构造

Python3.9.4 , vscode

引用模块:

requests , BeautifulSoup , ThreadPoolExecutor

完整代码

import requests
from bs4 import BeautifulSoup
from concurrent.futures import ThreadPoolExecutordef get_sub(url):#获取所有子页面内容re = requests.get(url,headers=headers)re.encoding = 'GB2312'soup = BeautifulSoup(re.text,'html.parser')project = soup.find('ul',class_='tplist').find_all('li')for i in project:a = i.find('a')link = 'http://www.1ppt.com'+a['href']img = i.find('img')name = img['alt']#获取子页面每个PPT模块链接re1 = requests.get(link,headers=headers)re1.encoding = 'GB2312'soup = BeautifulSoup(re1.text,'html.parser')project_link = soup.find('ul',class_='downurllist').find('a')down_link = 'http://www.1ppt.com'+project_link['href']down_file = requests.get(url=down_link,headers=headers)soup1 = BeautifulSoup(down_file.text,'html.parser')try:zip_p = soup1.find('ul',class_='downloadlist').find('a')down_links = zip_p['href']#这里替换自己保存路径!!!path = '/Users/Desktop/PPT/{}.zip'.format(name)re = requests.get(url=down_links,headers=headers)with open (path,'wb') as f:f.write(re.content)print('下载 %s 成功'%name)except:print('No link')pass  if __name__ == '__main__':sub_url = []headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'}r = requests.get('http://www.1ppt.com/',headers=headers)r.encoding = 'GB2312'soup = BeautifulSoup(r.text,'html.parser')all_link = soup.find('div',class_='col_nav i_nav clearfix').find_all('a')for i in all_link:url = 'http://www.1ppt.com'+i['href']sub_url.append(url)#确定子链接个数print(len(sub_url))with ThreadPoolExecutor() as pool:results = pool.map(get_sub,sub_url)for result in results:#返回None代表当前线程任务结束print(result)

执行结果


返回None代表当前线程任务结束

以上是一个简单爬虫的编写过程,不当之处望请指正。

使用线程池爬取PPT模版相关推荐

  1. 基于requests模块的cookie,session和线程池爬取

    基于requests模块的cookie,session和线程池爬取 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三"人人网"个人主页数据)时,如果使用之前req ...

  2. Python爬虫——使用线程池爬取同程旅行景点数据并做数据可视化

    大家好!我是霖hero 正所谓:有朋自远方来,不亦乐乎?有朋友来找我们玩,是一件很快乐的事情,那么我们要尽地主之谊,好好带朋友去玩耍!那么问题来了,什么时候去哪里玩最好呢,哪里玩的地方最多呢? 今天将 ...

  3. 使用selenium,xpath,线程池爬取斗鱼主播信息

    使用xpath,线程池爬取斗鱼主播信息: 主要爬取主播昵称,直播内容分类,房间名称,房间号以及人气,共爬取了大概110多页数据,大概15000条,保存在txt文本中, import timefrom ...

  4. 【每日爬虫】:利用线程池爬取2万张装修效果图

    文章目录 一.前言 二.需求 三.技术路线 四.线程池爬取2万张装修效果图 五.其他 一.前言 2020-04-08日爬虫练习 每日一个爬虫小练习,学习爬虫的记得关注哦! 学习编程就像学习骑自行车一样 ...

  5. 【python爬虫学习记录 持续更新】多线程多进程,带线程池爬取实例

    文章目录 简介 多线程codingFrame 多进程codingFrame 线程池与进程池 线程池爬取实例(主页url隐了 主要看思路 和如何使用线程池框架) 简介 进程是资源单位 线程是执行单位 每 ...

  6. 爬虫项目代理操作和线程池爬取

    代理操作 代理操作的目的 一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,如果访问频率太快以至于看起来不像正常访客,它可能就会会禁止这个IP的访问.所以我们需要设置一些代 ...

  7. 使用requests、BeautifulSoup、线程池爬取艺龙酒店信息并保存到Excel中

    import requests import time, random, csv from fake_useragent import UserAgent from bs4 import Beauti ...

  8. Python爬取PPT模板(requests+BeautifulSoup+多线程)

    Python爬取PPT模板(requests+BeautifulSoup+多线程) 快到做毕业设计的时间了,得去找点好看的PPT模板了,在http://www.ypppt.com这个网站上发现了很多不 ...

  9. python 24位图转 8位_Python爬取PPT模板小工具下载-Python爬取PPT模板小工具免费版下载v1.0...

    由于很多PPT抓取工具都会因为版本问题无法使用,所以论坛大神就自己写了这款Python爬取PPT模板小工具,可以帮助用户轻松获取各种PPT模板,使用的时候注意一次只能下载一种类型.软件仅供交流学习,下 ...

最新文章

  1. 软件破解工具整理收集
  2. POJ1149 PIGS(最大流)
  3. 重磅!神策数据荣获华农保险 2020 年度优秀生态合作伙伴“最佳合作机构”荣誉称号...
  4. [云炬ThinkPython阅读笔记]3.3 构建
  5. SQL Server 系统存储过程
  6. 【报告分享】2021中国数据智能产业发展研究报告.pdf(附下载链接)
  7. pytorch查缺补漏
  8. img src SVG使用CSS更改样式
  9. 计算机课堂热身游戏,电脑课我们常玩的13个小游戏
  10. lsd 特征点匹配代码_openCV-特征点匹配算法介绍一:理解特征
  11. Django-天天生鲜项目-用户登录
  12. rda分析怎么做_PCA、PCoA、NMDS 、RDA和CCA等排序分析方法
  13. 50V升压恒流LED驱动芯片
  14. maya中英转换插件1.3 更新发布及教程
  15. linux中的__setup的作用
  16. 抗击疫情 融云在行动
  17. 基于python的购物比价_python比价
  18. Python报错:PermissionError: [Errno 13] Permission denied解决方案详解
  19. LDA主题模型的原理及使用教程
  20. 去哪儿网一面:工厂方法模式

热门文章

  1. 企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提 成7.5%;20万到40万之间时,
  2. 用Ubuntu和RStudio Server搭建一个R语言的云平台
  3. 青少儿科学小实验--神奇的气球(摩擦起电)
  4. 心电图多少为正常范围_【心电图参数及正常范围】_指标_正常值-大众养生网
  5. 2021一级计算机考证(全)
  6. 数学闭区间和开区间的区别是什么
  7. 河北农业大学C语言题目,河北农业大学2010-2011学年现科C语言考试试题及答案.doc...
  8. C++组件测试及应用 — 基于Tessy的测试技术漫谈
  9. Image Processing Machine Vision 2022 图像处理与机器视觉
  10. 学python心得体会1000字-浅谈我对python的学习感受