目录

  • 上一篇的翻页爬取图片代码
    • 爬取《三国演义》

上一篇的翻页爬取图片代码

话不多说,直接上代码

import requests
import re
import osif __name__ == "__main__":# 创建文件夹if not os.path.exists("./糗图(翻页)"):os.mkdir("./糗图(翻页)")# UA 伪装header = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36"}# 指定 urlfor index in range(1, 3): # 翻两页url = "https://www.qiushibaike.com/imgrank/page/%s/" % str(index) # 我们观察不同页数的网址会发现不同页数的网址的差异在于最后的数字# 发送请求page = requests.get(url = url, headers = header).text# 正则解析ex = '<div class="thumb">.*?<img src="(.*?)" alt=".*?</div>'data_list = re.findall(ex, page, re.S)# print(data_list) # 试着打印看看这是不是我们需要的东西# 指定图片的 urlfor i in data_list:new_url = "https:" + ititle = i.split("/")[-1]path = "./糗图(翻页)/" + title# 发送请求photo = requests.get(url = new_url, headers = header).content# 保存with open(path, "wb") as fp:fp.write(photo)print(title, "下载完成!!!")print("over!!!")

爬取《三国演义》

爬取图片难道就可以满足我们了吗?俗话说的好,书中自有黄金屋,书中自有颜如玉。只爬取妹子图怎么可以满足我?要来就干票大的,钱和美女我都要!!!那么说来就来,就让我们来爬取《三国演义》吧。

首先我们打开《三国演义》的目录发现所有的章节都是一个超链接,所以我们需要对该网址进行数据解析,得到所有章节的url,然后对新的 url 进行数据解析,得到网址中的所有文本信息。



思路比较简单,了解之后,就可以直接写代码了

import requests
import reif __name__ == "__main__":# UA伪装header = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36"}# 指定urlurl = "http://sanguo.5000yan.com/"# 发送请求page = requests.get(url = url, headers = header)page.encoding = "utf-8" # 编译源码,不然我们得到的就是一些乱码page = page.text# 正则解析ex = '<li .*? href="(.*?)">(.*?)</a></li>'new_url_list = re.findall(ex, page, re.S)# print(new_url_list) # 测试是否为我们要的 urlfor new_url in new_url_list[4:]:title = new_url[1]new_page = requests.get(url = new_url[0], headers = header)new_page.encoding = "utf-8" # 编译源码,不然我们得到的就是一些乱码new_page = new_page.textex = '<div>(.*?)</div>'page_text = re.findall(ex, new_page, re.S)# 存储with open("./三国演义.txt", "a", encoding = "utf-8") as fp:if title == "第一回 宴桃园豪杰三结义 斩黄巾英雄首立功":fp.write(title + ":" + "\n" + "\n")else:fp.write("\n" + "\n" + title + ":" + "\n" + "\n")# 因为我们用正则表达式得到的数据里有超链接,所以我们需要把这些都替换掉for sencetence in page_text:sencetence = re.sub(r"<.*?>", "", sencetence)sencetence = re.sub(r"&mdash;", "—", sencetence)sencetence = re.sub(r"&nbsp;", "", sencetence)sencetence = re.sub(r"&ldquo;", "“", sencetence)sencetence = re.sub(r"&rdquo;", "”", sencetence)sencetence = re.sub(r"\s", "", sencetence)with open("./三国演义.txt", "a", encoding = "utf-8") as fp:if sencetence != "":fp.write("\n" + "\t" + sencetence)print(title, "下载完成!!!")

运行结束后,我们打开文件,结果如下。

冰冻三尺,非一日之寒。数据解析——正则解析(2)相关推荐

  1. 冰冻三尺,非一日之寒。数据解析——正则解析(1)

    正则解析爬取图片 因为讲的是正则解析,而不是正则表达式,所以我就默认大家会正则表达式了.最多在这里给大家看一下正则的语法. 这也是我从B站上截图截下来的.因为我自己都是学的半懂不懂的,实在没那脸说在这 ...

  2. 数据解析学习笔记(正则解析、bs4解析、xpath解析)

    聚焦爬虫:爬取页面中指定的页面内容. - 编码流程: - 指定url - 发起请求 - 获取响应数据 - 数据解析 - 持久化存储 数据解析分类: 正则 bs4 xpath(***) 数据解析原理概述 ...

  3. (一)基础:通过简单HTTP请求和正则进行数据爬取解析

    (一)基础:通过简单HTTP请求和正则进行数据爬取解析 文章目录 (一)基础:通过简单HTTP请求和正则进行数据爬取解析 发送简单http请求 如何使用代理ip发送请求 常用的User-Agent 发 ...

  4. Http接口请求Long类型数据JsonObject反解析精度丢失问题

    问题描述:前端解析Long类型精度丢失 前端 ajax 进行一个 Get请求,后台处理请求并返回application/json, 其中包含 Long类型的数据,前端解析呈现会有 精度丢失问题. 如图 ...

  5. pythonos pathjson_Python Json数据文件操作原理解析

    引言 接口测试就是数据的测试,在测试之前,需要准备好测试数据,而测试数据可以用数据库.excel.txt和csv方式,当然还有一种方式,那就是使用json文件来储存测试数据.常用的方式就是这些. 设计 ...

  6. hj212协议如何和php通讯,HJ212数据传输标准报文解析

    HJ212分为2005年(HJ/T212-2005)和2017年(HJ212-2017)的版本,略有不同. 网上没找到非常官方的渠道下载,在这贴一份2017年版本的下载地址 TCP/IP通讯包组成 名 ...

  7. SVN Error:请求的名称有效并且在数据库中找到,但是它没有相关的正确的数据来被解析...

    同事安装配置完Svn后一直down不下来文件,报错内容如下: Administrator 18:07:27  Checkout from https:/svn/web, revision HEAD, ...

  8. 某电力企业数据备份方案解析

    企业的大量信息包含在数据中,如何保护企业的数据,在现代企业管理中,已经越来越重要.本文主要讨论某电力企业业务管理系统中的数据备份实现技术和相关的方式.策略等,同时,对SmallWorld的备份做了一定 ...

  9. fastjson解析多层数据_JSON数据如何进行解析呢,方式有哪些?

    问题:JSON数据如何进行解析呢,方式有哪些? 这个问题是我们作为程序员几乎每天都要进行的操作,那它有多少种方式呢,我们这里就这点来说一说. 解析的四种方式 官方解析 谷歌 Gson 解析 阿里巴巴 ...

  10. 解析并符号 读取dll_风电场用风功率采集测风塔数据报文格式解析浅谈

    前段时间因为有点事情,好久没有更新了,非常对不住,感谢大家还在关注,下面是正文:看过我前面文章的朋友应该都知道,测风塔上送数据主要包括以下几个环境气象变量:风机轮毂处的风速.风向数据.以及其他不同高处 ...

最新文章

  1. 如何将PDF转换成JPEG图片?
  2. Android魔法(第四弹)—— 一步步实现百叶窗效果
  3. 【自适应盲均衡2】多径衰落信道的复数常模算法(CMA)的理论推导与MATLAB仿真
  4. 下拉插件 (带搜索) Bootstrap-select 从后台获取数据填充到select的 option中 用法详解...
  5. live server插件怎么用_分享几个我日常使用的VS Code插件
  6. C++ 宏、范型和RTTI 浅析
  7. 信息学奥赛C++语言: 扫雷游戏
  8. html时间自动,编辑自动结束时间.html
  9. 巴特沃斯滤波器 python_巴特沃斯、切比雪夫、贝塞尔滤波器的区别
  10. python中的append()有什么功能_在python中append()函数能做什么
  11. 信息差怎么赚钱?这个小众项目完全0门槛
  12. 【软件技巧】【截图】浏览器自带的全网页截图工具
  13. 【Windows】windows生成rsa密钥对
  14. Javascript实现简单的超级马里奥小游戏
  15. Exploring Pre-trained Language Models for Event Extraction and Generation 论文阅读
  16. python并行编程 - 进程篇
  17. 孩子数学成绩不好怎么办_孩子数学成绩差怎么才能快速提高
  18. 【转载】阿里面试回来,想和Java程序员谈一谈
  19. 希腊字母及对应的英文
  20. ArcMap中创建.shp文件

热门文章

  1. 台式计算机cpu扣不下去,台式电脑CPU反应太慢了!是怎么回事导致?有什么方法解决?...
  2. CentOs7 docker部署face_recognition
  3. 自动驾驶上的三种感知传感器(激光、毫米波雷达和摄像头)优缺点比较
  4. C# winform 魔兽MH全图制作教程(2):创建项目与关键类
  5. 【计算机网络】路由器与交换机
  6. 小程序 腾讯兔小巢 对接
  7. stm32h743单片机嵌入式学习笔记8-avi视频解码
  8. 计算机断网后怎么连接网络连接,win7系统中网络经常掉线断网后又自动连接上怎么办...
  9. 什么是知识库,怎么制作知识库?
  10. 外贸常用术语_常用外贸术语大全,外贸人的必备