初识python 之 爬虫:使用正则表达式爬取“古诗文”网页数据
通过requests、re(正则表达式) 爬取“古诗文”网页数据。
详细代码如下:
#!/user/bin env python
# author:Simple-Sir
# time:2019/7/31 22:01
# 爬取古诗文网页数据
import re
import requests def getHtml(page):
'''
获取网页数据
:param page: 页数
:return: 网页html数据(文本格式)
'''
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
url = 'https://www.gushiwen.org/default_{}.aspx'.format(page) # 获取几页数据
respons = requests.get(url,headers=headers)
html = respons.text
return html def getText(html):
titles = re.findall(r'<div class="cont">.*?<b>(.*?)</b>',html,re.DOTALL) # 获取标题 re.DOTALL 匹配所有字符,包含\n(.无法匹配\n)
caodai = re.findall(r'<p class="source">.*?<a.*?>(.*?)</a>',html,re.DOTALL) # 获取朝代
author = re.findall(r'<p class="source">.*?<a.*?>.*?<a.*?>(.*?)</a>',html,re.DOTALL) # 获取朝代
contents = re.findall(r'<div class="contson".*?>(.*?)</div>',html,re.DOTALL) # 获取内容,包含标签符号
con_texts =[] # 内容,不含标签符号
for i in contents:
rsub = re.sub('<.*?>','',i)
con_texts.append(rsub.strip()) # strip 去空格
si = []
for v in zip(titles,caodai,author,con_texts):
bt, cd, zz, nr = v
s = {
'标题':bt,
'朝代': cd,
'作者': zz,
'内容': nr
}
si.append(s)
return si def main():
p = int(input('您想要获取多少页的数据?\n'))
for page in range(1,p+1):
print('第{}页数据:'.format(page))
html = getHtml(page)
text = getText(html)
for i in text:
print(i) if __name__ == '__main__':
main()
爬取“古诗文”网页数据
执行结果:


初识python 之 爬虫:使用正则表达式爬取“古诗文”网页数据的更多相关文章
- Python网络爬虫与如何爬取段子的项目实例
一.网络爬虫 Python爬虫开发工程师,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页 ...
- Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识
网站站点的背景调研 1. 检查 robots.txt 网站都会定义robots.txt 文件,这个文件就是给 网络爬虫 来了解爬取该网站时存在哪些限制.当然了,这个限制仅仅只是一个建议,你可以遵守,也 ...
- python从爬虫基础到爬取网络小说实例
一.爬虫基础 1.1 requests类 1.1.1 request的7个方法 requests.request() 实例化一个对象,拥有以下方法 requests.get(url, *args) r ...
- 基础爬虫,谁学谁会,用requests、正则表达式爬取豆瓣Top250电影数据!
爬取豆瓣Top250电影的评分.海报.影评等数据! 本项目是爬虫中最基础的,最简单的一例: 后面会有利用爬虫框架来完成更高级.自动化的爬虫程序. 此项目过程是运用requests请求库来获取h ...
- python网络爬虫之四简单爬取豆瓣图书项目
一.爬虫项目一: 豆瓣图书网站图书的爬取: import requests import re content = requests.get("https://book.douban.com ...
- 【Python网络爬虫三】 爬取网页新闻
学弟又一个自然语言处理的项目,需要在网上爬一些文章,然后进行分词,刚好牛客这周的是从一个html中找到正文,就实践了一下.写了一个爬门户网站新闻的程序 需求: 从门户网站爬取新闻,将新闻标题,作者,时 ...
- Python爬虫:为什么你爬取不到网页数据
前言: 之前小编写了一篇关于爬虫为什么爬取不到数据文章(文章链接为:Python爬虫经常爬不到数据,或许你可以看一下小编的这篇文章), 但是当时小编也是胡乱编写的,其实里面有很多问题的,现在小编重新发 ...
- 精通python网络爬虫之自动爬取网页的爬虫 代码记录
items的编写 # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentati ...
- Python 网络爬虫实战:爬取 B站《全职高手》20万条评论数据
本周我们的目标是:B站(哔哩哔哩弹幕网 https://www.bilibili.com )视频评论数据. 我们都知道,B站有很多号称“镇站之宝”的视频,拥有着数量极其恐怖的评论和弹幕.所以这次我们的 ...
随机推荐
- 【Java 多线程】Java线程池类ThreadPoolExecutor、ScheduledThreadPoolExecutor及Executors工厂类
Java中的线程池类有两个,分别是:ThreadPoolExecutor和ScheduledThreadPoolExecutor,这两个类都继承自ExecutorService.利用这两个类,可以创建 ...
- Kafaka相关命令
开启zookeeper命令(备注:先进入zookeeper的bin目录) ./zkServer.sh start 关闭zookeeper命令(备注:先进入zookeeper的bin目录) ./zkSe ...
- matplotlib 画图中图和次坐标轴
一: fig.add_axes 画图中图 fig = plt.figure() x = np.arange(1, 9, 1) y = np.linspace(1, 10, 8) left, botto ...
- 过滤敏感词工具类SensitiveFilter
网上过滤敏感词工具类有的存在挺多bug,这是我自己改用的过滤敏感词工具类,目前来说没啥bug,如果有bug欢迎在评论指出 使用前缀树 Trie 实现的过滤敏感词,树节点用静态内部类表示了,都写在一个 ...
- Pycharm, 添加requirements.txt
引用:https://www.jetbrains.com/help/pycharm/managing-dependencies.html 1) 2) 3)
- Jenkins触发构建
目录 一.简介 二.时间触发 定时触发 轮询代码仓库 三.事件触发 由上游任务触发 gitlab通知触发 四.通用触发接口 GWT 提取参数 触发某个具体项目 过滤请求值 控制打印内容 控制响应 一. ...
- MVCC详解
参考: https://blog.csdn.net/SnailMann/article/details/94724197 https://blog.csdn.net/DILIGENT203/artic ...
- C# 脚本
有些情况下,需要在程序运行期间动态执行C#代码,比如,将某些经常改变的算法保存在配置文件中,在运行期间从配置文件中读取并执行运算.这时可以使用C#脚本来完成这些工作. 使用C#脚本需要引用库Micro ...
- Python3 面向对象之-----元类
元类 1. 类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段.在Python中这一点仍然成立: >>> class ObjectCreator(object ...
- js Date()获取时间,格式化输出,时间比较大小
1.获取时间并且格式化输出 new Date().toLocaleString('cn',{hour12:false}) //2018/12/6 17:57:15 new Date().toLocal ...