这次用正则表达式练练手,正则表达式网上有很多在线测试的工具,倒是xpath很少基本没有真正的在线测试。上期做过xpath解析,这次用正则表达式来搜索。中途不懂就查正则表达式的例子看。这次爬的是彼岸图网的4k动漫壁纸,原理也很简单,毕竟是静态网页来的,html中就有想要的图片链接。就是要点进每个图片中才有大图的链接,否则是类似缩略图是小的。

#!/usr/bin/env python
# -*- coding: utf-8 -*-import requests
import re
import osdef getHTMLText(url, num):text = []r = requests.get('http://pic.netbian.com/4kdongman/index.html', timeout=30)r.raise_for_status()text.append(r.text)for i in range(2, num):u = url + str(i) + '.html'text.append(getHTML(u))return text# 返回htmlText的接口
def getHTML(url):r = requests.get(url, timeout=30)r.raise_for_status()return r.text# 第一层解析 : tupian/8888.html
def parseHTML(text):tupian = []for t in text:try:ids = re.findall(r'/tupian/[\d]*.html', t)tupian.append(ids)except:continuereturn tupian# 第二层解析
def parseHTML2(url2, tupian):imgList = []for i in tupian:for j in i:u = url2 + jtext = getHTML(u)try:img = re.findall(r'id="img"><img src="/uploads/allimg/.*?.jpg', text)[0].split("allimg")[-1]imgList.append(img)except:continuereturn imgListdef downloadImg(imgList):if not os.path.exists('彼岸图网4k动漫壁纸'):os.mkdir('彼岸图网4k动漫壁纸')else:passos.chdir('彼岸图网4k动漫壁纸')num = 1for img in imgList:resub = re.sub('/', '_', img)if os.path.exists(resub):print('已存在壁纸 {}'.format(resub))else:content = requests.get('http://pic.netbian.com/uploads/allimg' + img).contentwith open(resub, 'wb') as f:print('正在下载第{}张: {}'.format(num, img))f.write(content)num += 1print(num - 1, '张图片下载成功!')def main():num = 1url = 'http://pic.netbian.com/4kdongman/index_'url2 = 'http://pic.netbian.com'text = getHTMLText(url, num)tupian = parseHTML(text)imgList = parseHTML2(url2, tupian)downloadImg(imgList)# print(imgList)main()

这次的代码是早弄好的,没有像上期的xpath解析那样认真检查,毕竟上期可是福利来的哈哈?。

利用正则表达式re的findall方法,怕表达式写错提取不出想要的可以到在线测试工具测试,这次依然要注意文件夹名称不能有非法字符,可以用正则表达式的sub函数来替换字符。

不懂可问,不好可点。

虽然是很小白的代码,为了丰富csdn小的也写进去吧,或者csdn就放这些小程序好啦。

python爬虫之正则表达式搜索实战练练手相关推荐

  1. python爬虫从入门到实战笔记——第四章Scrapy框架

    推荐阅读: python爬虫从入门到实战笔记--第一章爬虫原理和数据爬取 python爬虫从入门到实战笔记--第二章非结构化数据和结构化数据的提取 python爬虫从入门到实战笔记--第三章动态HTM ...

  2. 《Python爬虫开发与项目实战》——第3章 初识网络爬虫 3.1 网络爬虫概述

    本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第3章,第3.1节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第3章 初识网 ...

  3. 教你使用Python爬虫获取电子书资源实战!喜欢学习的小伙伴过来看啦!

    最近在学习Python,相对java来说python简单易学.语法简单,工具丰富,开箱即用,适用面广做全栈开发那是极好的,对于小型应用的开发,虽然运行效率慢点,但开发效率极高.大大提高了咱们的生产力. ...

  4. 05、Python爬虫之正则表达式常用方法(超全)

    文章目录 前言 一.search()函数 二.match()函数 三.compile()函数 四.findall()函数 五.sub()函数 六.subn()函数 七.split()函数 八.补充说明 ...

  5. python爬虫项目实例-Python爬虫开发与项目实战

    Python爬虫开发与项目实战(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1MFexF6S4No_FtC5U2GCKqQ 提取码:gtz1 复制这段内容后打开百度 ...

  6. python爬虫开发环境_python爬虫开发教程下载|Python爬虫开发与项目实战(范传辉 著)pdf 完整版_ - 极光下载站...

    Python爬虫开发与项目实战pdf扫描版下载.Python爬虫开发是一个Pthyon编程语言与HTML基础知识引领读者入门知识,重点讲述了云计算的相关内容及其在爬虫中的应用,进而介绍如何设计自己的爬 ...

  7. 《Python爬虫开发与项目实战》——1.6 小结

    本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第1章,第1.6节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 1.6 小结 ...

  8. 《Python爬虫开发与项目实战》——第1章 回顾Python编程 1.1 安装Python

    本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第1章,第1.1节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第1章 回顾P ...

  9. 笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫

    笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫 本资料为最新整理高清带目录pdf,百度网盘下载~~~ 本资料为最新整理高清带目 ...

最新文章

  1. MLIR(Multi-Level Intermediate Representation Compiler)架构 Infrastructure
  2. Linux下数值计算
  3. Java算法--插入排序算法
  4. 【BZOJ2797】[Poi2012]Squarks 暴力乱搞
  5. C++ getline() 和 get()
  6. Scala:First Steps in Scala
  7. Java Persistence API:快速入门
  8. 2019-暑期实习生-自然语言处理算法岗-面试题
  9. python批量将pdf转成word_如何用Python把pdf转换成word
  10. map集合——阅读理解(洛谷 P3879)
  11. 网易家居专访柯拉尼陶晓松:有所为 有所不为 争创领军品牌
  12. html编写注册页面
  13. MathType2022最新版详细教程及怎么安装到word里?
  14. bitblt与StretchDIBits
  15. 计算机接口论文摘要,计算机接口技术论文_计算机接口技术
  16. [读史思考]北宋历史上几个外行项目经理
  17. 日系IP的五大“坑”
  18. 盐城工业职业技术学院计算机没用过,2020年江苏软考盐城工业职业技术学院考点参考人数266人...
  19. 耀世升级发布,阿里新出第三版Java多线程核心技术手册PDF全彩版
  20. VC 显示 隐藏 工具栏 状态栏

热门文章

  1. 关于ubuntu18.04ping不通网关以及外网的办法,自己总结
  2. 怎么给pdf文件加密?pdf文档如何加密
  3. ExpressionFuncT,TResult和FuncT,TResult的区别
  4. 【js】 JavaScript实现抽奖效果
  5. 创建car销售的MYSQL数据库
  6. HFSS----环形定向耦合器的设计实例
  7. Pivot Table
  8. linux上wds部署服务,WDS服务器的部署与配置
  9. SourceInsight使用详解
  10. Vue监听浏览器前进后退物理返回键(浏览器自带的)