urllib库 + re模块爬取内涵吧的文字段子

2024-04-18 15:58

本文主要是介绍urllib库 + re模块爬取内涵吧的文字段子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

源码

# !/usr/bin/env python
# -*- coding:utf-8 -*-"""
爬去内涵吧的段子关键点:1.分析url2.分析html源码中段子的标题和内容,构建正则表达式3.findall()方法
"""import urllib.request
import reclass Spider(object):def __init__(self):"""page:页码"""self.page=1self.url="http://www.neihan8.com/wenzi/index.html"def load_page(self):"""加载网页数据"""request_header={"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36",}req=urllib.request.Request(self.url,headers=request_header)resp=urllib.request.urlopen(req)html=resp.read().decode('utf-8')# print(html)self.parse_page(html)self.page+=1if self.page!=1:self.url=re.sub(r'index\w*\.html$','index_'+str(self.page)+'.html',self.url)# print(self.url)def parse_page(self,html):"""解析网页数据,提取段子标题和内容""""""<h3><a href="/article/209245.html" class="title" title="弹壳">弹壳</a></h3><div class="desc">   70年代,有一天,我们村里要放电影,村里人大字不识一个,很多小孩没上过学,放的是打仗的片子,到电影队收幕的时候,村里的小孩都去扒那个幕布。  电影队的人很奇怪,就问小孩:“你</div>"""# re.S,全文匹配patern=re.compile(r'<h3><a\shref="(.*?)"\sclass="title"\stitle="\w*?">(.*?)</a></h3>.*?<div class="desc">(.*?)</div>',re.S)items=patern.findall(html)# print(items.__len__())for item in items:href='http://www.neihan8.com'+item[0]title=item[1]desc=item[2]data=href+'\n'+title+'\n'+desc+'\n\n'print(data)self.save(data)def save(self,data):"""保存数据到本地磁盘"""with open('duanzi.txt',mode='a') as f:f.write(data)f.flush()def work(self):"""爬虫调度器"""while True:key=input("继续请按回车键,退出请按q键 >>>")if key=="q":breakelse:print("加载中...")self.load_page()if __name__ == '__main__':spider=Spider()spider.work()

运行效果




这篇关于urllib库 + re模块爬取内涵吧的文字段子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/915231

相关文章

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Python logging模块使用示例详解

《Pythonlogging模块使用示例详解》Python的logging模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查,下面给大家介绍Pythonlogging模... 目录一、为什么使用 logging 模块?二、核心组件三、日志级别四、基本使用步骤五、快速配置(bas

Python datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

Flutter实现文字镂空效果的详细步骤

《Flutter实现文字镂空效果的详细步骤》:本文主要介绍如何使用Flutter实现文字镂空效果,包括创建基础应用结构、实现自定义绘制器、构建UI界面以及实现颜色选择按钮等步骤,并详细解析了混合模... 目录引言实现原理开始实现步骤1:创建基础应用结构步骤2:创建主屏幕步骤3:实现自定义绘制器步骤4:构建U

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模