##### 爬取古诗文
import re
import requests

def parse_page(url):
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36'
}
respose = requests.get(url,headers).text
titles = re.findall(r'<div\sclass="cont">.*?<b>(.*?)</b>',respose,re.DOTALL)
authors = re.findall(r'<p\sclass="source">.*?<a\s.*?>(.*?)</a>',respose,re.DOTALL)
dynaties = re.findall(r'<p\sclass="source">.*?<a\s.*?><a\s.*?>(.*?)</a>',respose,re.DOTALL)
content_tags = re.findall(r'div\sclass="contson"\sid=.*?>(.*?)</div>',respose,re.DOTALL)
contents = []
for content in content_tags:
# 替换<b>
text = re.sub(r'<.*?>','',content)
contents.append(text.strip())

poems = []
# zip进行解包
for values in zip(titles,authors,dynaties,contents):
titles,authors,dynaties,content = values
poem = {
'titles':titles,
'authors':authors,
'dynaties':dynaties,
'content_tags':content
}
poems.append(poem)

for poem in poems:
print(poem)
print('*'*40)

def main():
for x in range(1,10):
url = 'https://www.gushiwen.cn/default_%d.aspx'%x
parse_page(url)

if __name__ == '__main__':
main()

# 正则爬取糗事百科段子

import re
import requests

def parse_page(url):
headers = {
'user-agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36'
}
respone = requests.get(url,headers=headers).text
# re.DOTALL = re.S 可以.匹配\n
contents = re.findall(r'<div\sclass="content">.*?<span>(.*?)</span>',respone,re.DOTALL)
content_text = []
for content in contents:
text = re.sub(r'<.*?>',"",content)
content_text.append(text.strip())

DUNA_Text = []
for value in zip(content_text):
contents = value
text = {
"title":contents
}
DUNA_Text.append(text)

for duan_value in DUNA_Text:
print(duan_value)

def main():

for x in range(1,10):
url = 'https://www.qiushibaike.com/text/page/%d/'%x
parse_page(url)

if __name__ == '__main__':
main()

Python_结合Re正则模块爬虫的更多相关文章

  1. Python全栈开发【re正则模块】

    re正则模块 本节内容: 正则介绍 元字符及元字符集 元字符转义符 re模块下的常用方法 正则介绍(re) 正则表达式(或 RE)是一种小型的.高度专业化的编程语言. 在Python中,它内嵌在Pyt ...

  2. python_way day6 反射,正则 模块(进度条,hash)

    python_way day6 反射 正则 模块 sys,os,hashlib 一.模块: 1.sys & os: 我们在写项目的时候,经常遇到模块互相调用的情况,但是在不同的模块下我们通过什 ...

  3. 小白的Python之路 day5 re正则模块

    re正则模块 一.概述 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,要讲他的具体用法要讲一本书!它内嵌在Python中,并通过 re 模块实现.你可以为想要匹配的相应字符串 ...

  4. 认识python正则模块re

    python正则模块re python中re中内置匹配.搜索.替换方法见博客---python附录-re.py模块源码(含re官方文档链接) 正则的应用是处理一些字符串,phthon的博文python ...

  5. Python3中正则模块re.compile、re.match及re.search函数用法详解

    Python3中正则模块re.compile.re.match及re.search函数用法 re模块 re.compile.re.match. re.search 正则匹配的时候,第一个字符是 r,表 ...

  6. 008---re正则模块

    re正则模块 字符串的匹配规则 匹配模式 re.match() re.search() re.findall() re.split() re.sub() 元字符 print('------------ ...

  7. 使用requests模块爬虫

    虽然干技术多年了,但从没有写过博客,想来甚是惭愧,本篇作为我博客的第一篇,也是测试篇.不为写的好,只为博诸君一眸而已. 使用python爬虫,有几个比较常用的,获取html_content的模块url ...

  8. Go语言正则模块

    基本使用 import "bytes" import "fmt" import "regexp" func main() { //这个测试一 ...

  9. day22、模块-basedir、os、json模块、pickle和正则模块。

    四.正则. re模块: 作用:针对的对象:字符串, 课前引入: 例子一. s='dsdsadsadadsalexdsds's.find('alex') 如何找到字符串内部的alex;?过去学习可使用方 ...

随机推荐

  1. Docker系列——Grafana+Prometheus+Node-exporter微信推送(三)

    在之前博文中,已经成功的实现了邮件推送.目前主流的办公终端,就是企业微信.钉钉.飞书.今天来分享下微信推送,我们具体来看. 企业微信 在配置企业微信推送时,需要有微信企业,具体如何注册.使用,另外百度 ...

  2. JUC 并发编程--06, 阻塞队列(7种), 阻塞等待 api的 代码验证

    这些队列的 api ,就是添加队列,出队列,检测对首元素, 由于 add()--remove(), offer()--poll(),太简单这里不做验证, 只验证后二组api: 阻塞等待( put()- ...

  3. 《python网络数据采集》笔记1

    第一部分-创建爬虫 1.urllib 1)urllib.request request.urlopen(url) request.urlretrieve 可以根据文件的 URL 下载文件 2)urll ...

  4. 3、Java基础语法(下):程序流程控制

    程序流程控制 从键盘获取不同类型的变量: 使用Scanner类,具体实现步骤: 1.导包:import java.util.Scanner; 2.Scanner的实例化:Scanner scan = ...

  5. 05:JS(01)

    内容概要 JavaScript编程语言开头 数值类型 字符类型 布尔值 null与undefined 对象 数组 自定义对象 流程控制 函数 内置对象 时间对象 正则对象 JSON对象 BOM操作(j ...

  6. C# 扫描并读取图片中的文字

    本文介绍如何通过C# 程序来扫描并读取图片中的文字,这里以创建一个.Net Core程序为例.下面是具体步骤,供参考. 程序测试环境: Visual Studio版本要求不低于2017 图片扫描工具: ...

  7. Hibernate 这么硬核,为什么用的人少?

    关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题.最近温习了一遍SSH框架,发了动弹,和广大猿友进行了深刻的探讨,被喷的五体投地,感慨万千,于是就有了今天这篇文章. 声明:本文只是小编 ...

  8. 4、linux32位和64位操作系统的区别

  9. Typecho 安装教程 -- Linux

    1.下载宝塔面板 1 使用 SSH 连接工具,如堡塔SSH终端连接到您的 Linux 服务器后,挂载磁盘,根据系统执行相应命令开始安装(大约2分钟完成面板安装): 2 Centos安装脚本 yum i ...

  10. 关于PHP导出数据超时的优化

    一般情况下,导出超时可能都是以下三种情况: 一.sql语句复杂,查询时间过长: 二.处理查询后数据逻辑冗余: 三.数据量过大导致响应超时. 接下来分别给出这三种情况的优化建议. 一.sql语句复杂,查 ...