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中的多线程编程
Apr 09 Python
python通过openpyxl生成Excel文件的方法
May 12 Python
Python实现的桶排序算法示例
Nov 29 Python
Python实现嵌套列表去重方法示例
Dec 28 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
在Python中输入一个以空格为间隔的数组方法
Nov 13 Python
python实现的爬取电影下载链接功能示例
Aug 26 Python
Python 中使用 PyMySQL模块操作数据库的方法
Nov 10 Python
keras中的History对象用法
Jun 19 Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 Python
python基于win32api实现键盘输入
Dec 09 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
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开发工具及资源收藏
2007/01/02 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
Python实现拼接多张图片的方法
2014/12/01 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
Django框架实现逆向解析url的方法
2018/07/04 Python
Django中URL的参数传递的实现
2019/08/04 Python
解析python实现Lasso回归
2019/09/11 Python
python实现简单图书管理系统
2019/11/22 Python
通俗讲解python 装饰器
2020/09/07 Python
HTML5中微数据概述及在搜索引擎中的使用举例
2013/02/07 HTML / CSS
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
用C#语言写出在本地创建一个UDP接收端口的具体过程
2016/02/22 面试题
Java语言的优势
2015/01/10 面试题
安卓程序员求职信
2014/02/28 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
党员活动总结
2015/02/04 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
Python 如何实现文件自动去重
2021/06/02 Python
MySQL的Query Cache图文详解
2021/07/01 MySQL