最近刚刚学习了正则表达式,于是立刻用正则表达式爬取了包图网教师节海报

from urllib import request
import re
import os.path
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'}#定义一个url拼接的函数
def url_splice(page):url = 'https://ibaotu.com/guanggao/1-106-0-1206-0-' + str(page) +'.html'#找到每页教师节图片url的共同点return url#定义一个获取原网页的类
class Page_Text(object):def __init__(self, url , headers):     #初始化,传入url和headersself.url = urlself.headers = headersself.pattern = '<dt><a href="(.*?)" target="_blank" data-id="[0-9]*".*?alt="(.*?)".*?</a>.*?</dt>'   #初始化正则表达式规则def get_page_text(self):     #获取原网页源代码req = request.Request(url=self.url, headers=self.headers)resp = request.urlopen(req)if resp.getcode() == 200:page_text = resp.read().decode('utf-8')return page_textelse:self.get_page_text()#获取图片正则表达式def img_info(self):pat = re.compile(self.pattern, re.S)regex = pat.findall(self.get_page_text())return regex#文件夹的创建def folder_creat(self, n):      #文件夹创建if not os.path.exists('./' + self.img_info()[n][1]):os.mkdir('./' + self.img_info()[n][1])#获取图片信息,获取的是应该字节def img_content(self,url):req = request.Request(url=url, headers=self.headers)resp = request.urlopen(req)if resp.getcode == 200:img_content = resp.read().encode('utf-8')#进行编码return img_content#获取图片并且保存def get_img(self):img_url_list = ['https:' + self.img_info()[i][0] for i in range(len(self.img_info()))]img_name_list = [self.img_info()[i][1] for i in range(len(self.img_info()))]for img_URL in img_url_list:index = img_url_list.index(img_URL)self.folder_creat(index)self.url = img_URLimg_page = self.get_page_text()self.pattern = '<div.*?src="(.*?)" alt=".*?".*?alt=".*?" src="(.*?)".*?alt=".*?" src="(.*?)".*?</div>'img_url_1 = self.img_info()self.pattern = '<div.*?src=".*?" alt="(.*?)".*?alt="(.*?)" src=".*?".*?alt="(.*?)" src=".*?".*?</div>'img_name = self.img_info()for n in range(3):with open('./' + self.img_info()[index][1] + '/' + img_name[0][n], 'wb') as fp:fp.write(self.img_content(img_url_1[0][n]))if __name__ == '__main__':text = Page_Text(url_splice(1), headers)text.get_img()

写完这段代码后感觉正则表达式实在是太复杂了。正则表达式有些时候并不是万能的,有些时候他会让你的代码复杂化,运行时间太慢。改天再用其他方法试试。

爬取包图网教师节海报相关推荐

  1. 使用单线程,多线程,协程,异步爬取包图网大国工匠视频

    使用单线程爬取,多线程,协程爬取,异步爬取包图网视频 文章目录 使用单线程爬取,多线程,协程爬取,异步爬取包图网视频 第一步使用单线程爬取包图网视频 多线程爬取视频 用协程爬取 基于协程的异步爬取 第 ...

  2. 多线程爬取包图网背景音乐

    本文旨在交流学习,勿作他用,否则后果自负 import csv import threading import random import requests from lxml import etre ...

  3. 爬虫学习(10):xpath爬取包图网高清模板视频

    暂时我就没有发xpath基础知识了,编辑太浪费时间了,需要了解或者有问题的可以加我群问我就好了,我也正在努力学习中,不废话了,上代码,解释都在注释. 先看效果: 开始的时候下载的还不是那么高清,后来我 ...

  4. 斗图斗不过小伙伴?python多线程爬取斗图网表情包,助你成为斗图帝!

    最近python基础课讲到了多线程,老师让交个多线程的实例练习.于是来试试多线程爬虫,正好复习一下mooc上自学的嵩天男神的爬虫知识.想法很美好,过程却很心酸,从早上开始写,每次出现各种奇怪问题,到现 ...

  5. python3爬虫——多线程爬取斗图网表情包

    本文用多线程生产者,消费者模式爬取斗图网的表情包,并下载保存到本地,get_page()函数负责获取页面的图片的url链接,downlod_img()函数通过图片url下载保存到本地文件夹中,开启多线 ...

  6. 爬虫笔记——多线程爬取斗图网表情包(threading)

    爬虫笔记--多线程爬取斗图网表情包(threading) 网站观察 爬取框架 具体代码 斗图网网址:斗图网,这里以爬取最新套图为例. 网站观察 在网页翻页操作中可以看到网页是非动态加载的(page为页 ...

  7. python爬取千图网图片并保存_Python数据分析与挖掘实战-课程作业5爬取千图网某个频道的高清图片...

    作业要求:爬取千图网(http://www.58pic.com)某个频道的高清图片 作业难点:正确找到图片链接并用正则表达式写出 代码如下: """ Created on ...

  8. [ Python ] 爬虫类库学习之 xpath,爬取彼岸图网的 小姐姐 图片

    安装:pip install lxml 实例化一个etree对象 from lxml import etree 1.将本地的html文档中的源码数据加载到etree对象中 etree.parse(fi ...

  9. 使用python爬取斗图网的图片

    使用python爬取斗图网的图片 以下是代码部分: # -*- coding: utf-8 -*- """ Created on Wed Apr 14 14:41:42 ...

  10. 多线程 爬取 趣图网

    原文链接: 多线程 爬取 趣图网 上一篇: 百度网盘获取私密分享的文件 下一篇: 欧几里得距离.曼哈顿距离和切比雪夫距离 # coding=utf-8import urllib import urll ...

最新文章

  1. linux文件系统dentry_NFS 文件系统源代码剖析
  2. linux 6.8 dns,CentOS6.8下安装DNS服务器
  3. InstallShield 2015 LimitedEdition VS2012 运行bat文件
  4. C++的一维数组键盘输入问题
  5. 线性模型系数解读中的那些坑,以套索回归(LASSO)和岭回归(Ridege)为例
  6. UIScrollView截长图
  7. iphone屏蔽系统更新_iPhone手机经常提示更新系统,教你一招关闭方法,学到了
  8. 存在网路的情况下重命名SDE中数据图层错误(The orphan junction feature class cannot be renamed)...
  9. 【转】C#调用WebService实例和开发
  10. 语音编解码技术演进和应用选型
  11. 如何衡量研发效能?阿里资深技术专家提出了5组指标
  12. STM32的CAN过滤器详解
  13. 在Oracle DG Standby库上启用flashback database功能
  14. 浙江从小学生就上计算机课,废旧计算机在小学信息技术课中的再利用.doc
  15. LDA主题模型原理解析与python实现
  16. ajax 中操作this,需要先在ajax的外面给this重新定义为_this!!
  17. Netfilter实现机制分析 原作者:Minit
  18. 超分辨率重建双三次插值Bicubic生成高分辨率图像
  19. 记录MySQL中JSON_EXTRACT JSON_UNQUOTE函数的使用方式
  20. win10关闭计算机的原因,win10电脑自动关机是怎么回事

热门文章

  1. 1088 旅行问题(单调队列优化)
  2. 华为的宿敌思科,诞生爱情土壤中的技术之花
  3. 把人脑“森林”上传到计算机:人类脑计划只是一个科幻野心?
  4. Unity3D上路_01-2D太空射击游戏
  5. php记录sql语句,sql语句记录
  6. java实现pdf旋转_java生成pdf旋转_如何使用Java旋转PDF文档中的图像?
  7. maven环境变量配置以及集成到Eclipse中
  8. Java多线程系列--“JUC线程池”03之 线程池原理(二)
  9. u盘推荐知乎_u盘知乎恢复
  10. 送客户的祝福语_送给客户的温馨祝福语