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自定义函数的创建、调用和函数的参数详解
Mar 11 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
Python中如何优雅的合并两个字典(dict)方法示例
Aug 09 Python
Python通过OpenCV的findContours获取轮廓并切割实例
Jan 05 Python
python爬取个性签名的方法
Jun 17 Python
浅谈Django的缓存机制
Aug 23 Python
python处理multipart/form-data的请求方法
Dec 26 Python
Python制作动态字符图的实例
Jan 27 Python
pytorch 输出中间层特征的实例
Aug 17 Python
详解Python实现进度条的4种方式
Jan 15 Python
Django前后端分离csrf token获取方式
Dec 25 Python
Python pyecharts案例超市4年数据可视化分析
Aug 14 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实现对两个数组进行减法操作的方法
2015/04/17 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
认识延迟时间为0的setTimeout
2008/05/16 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
python通过线程实现定时器timer的方法
2015/03/16 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
python读取大文件越来越慢的原因与解决
2019/08/08 Python
python 元组的使用方法
2020/06/09 Python
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
美国存储和组织商店:The Container Store
2017/08/16 全球购物
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
英国手机零售商:Metrofone
2019/03/18 全球购物
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
会计专业毕业生自荐信范文
2013/12/20 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
公司搬迁通知
2015/04/20 职场文书
2015年加油站工作总结
2015/05/13 职场文书
电频谱管理的原则是什么
2022/02/18 无线电
以下牛机,你有几个
2022/04/05 无线电