Python3使用正则表达式爬取内涵段子示例


Posted in Python onApril 22, 2018

本文实例讲述了Python3使用正则表达式爬取内涵段子的方法。分享给大家供大家参考,具体如下:

似乎正则在爬虫中用的不是很广泛,但是也是基本功需要我们去掌握。

先将内涵段子网页爬取下来,之后利用正则进行匹配,匹配完成后将匹配的段子写入文本文档内。代码如下:

# -*- coding:utf-8 -*-
from urllib import request as urllib2
import re
# 利用正则表达式爬取内涵段子
url = r'http://www.neihanpa.com/article/list_5_{}.html'
headers = {
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0',
}
file_name = '内涵段子.txt'
for page in range(2):
# 2表示页数,可以自行调整
  fullurl = url.format(str(page+1))
  request = urllib2.Request(url=fullurl, headers=headers)
  response = urllib2.urlopen(request)
  html = response.read().decode('gbk')
  # re.S 如果没有re.S 则是只匹配一行有没有符合规则的字符串,如果没有则下一行重新匹配
  # 如果加上re.S 则是将所有的字符串作为一个整体进行匹配
  pattern = re.compile(r'<div\sclass="f18 mb20">(.*?)</div>',re.S)
  duanzis = pattern.findall(html)
  for duanzi in duanzis:
    duanzi = duanzi.replace('<p>','').replace('</p>','').replace('<br />','\n').replace('“','').replace('&rdquo','').replace('…','')
    try:
      # 将爬取的段子写入文件
      file = open(file_name,'a',encoding='utf-8')
      file.write('\n'.join(duanzi.split()))
      file.close()
    except OSError as e:
      print(e)

运行后生成如下图所示文件:

Python3使用正则表达式爬取内涵段子示例

Python 相关文章推荐
python 如何快速找出两个电子表中数据的差异
May 26 Python
python自定义异常实例详解
Jul 11 Python
Python对列表去重的多种方法(四种方法)
Dec 05 Python
Python线性回归实战分析
Feb 01 Python
python学生管理系统代码实现
Apr 05 Python
python如何对实例属性进行类型检查
Mar 20 Python
python视频按帧截取图片工具
Jul 23 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 Python
Keras实现支持masking的Flatten层代码
Jun 16 Python
详解Pandas 处理缺失值指令大全
Jul 30 Python
Python内置函数及功能简介汇总
Oct 13 Python
numpy实现RNN原理实现
Mar 02 Python
Python贪心算法实例小结
Apr 22 #Python
python 判断网络连通的实现方法
Apr 22 #Python
Python3之读取连接过的网络并定位的方法
Apr 22 #Python
对Python 网络设备巡检脚本的实例讲解
Apr 22 #Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 #Python
selenium+python实现自动登录脚本
Apr 22 #Python
python实现校园网自动登录的示例讲解
Apr 22 #Python
You might like
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
js创建数组的简单方法
2016/07/27 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
图文详解WinPE下安装Python
2016/05/17 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
如何在django中运行scrapy框架
2020/04/22 Python
Python 在局部变量域中执行代码
2020/08/07 Python
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
法律系毕业生自荐信范文
2014/03/27 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
副总经理岗位职责
2015/02/02 职场文书
女儿满月酒致辞
2015/07/29 职场文书
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers