古诗文网站的网络爬虫编写方式,通过网络爬虫抓去内容

1. 以下就是古诗文网站的爬虫代码,请看:

# encoding:utf-8
import requests
import re
import json
 
 
def parse_page(url):
    # 1.请求网站
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36"
    }
    response = requests.get(url, headers=headers)
    text = response.text
    # 2.解析网站
    titles = re.findall(r'<div\sclass="cont">.*?<b>(.*?)</b>', text, re.DOTALL)
    # print json.dumps(titles, encoding="utf-8", ensure_ascii=False)
    times = re.findall(r'<p\sclass="source">.*?<a\s.*?>(.*?)</a>', text, re.DOTALL)
    # print json.dumps(times, encoding="utf-8", ensure_ascii=False)
    authors = re.findall(r'<p class="source">.*?<a.*?<a.*?>(.*?)</a>', text, re.DOTALL)
    poems_ret = re.findall(r'<div class="contson" id=.*?>(.*?)</div>', text, re.DOTALL)
    poems = []
    for poem in poems_ret:
        temp = re.sub("<.*?>", "", poem)
        poems.append(temp.strip())
    # for index, value in enumerate(titles):
    #     print titles[index]
    #     print times[index]
    #     print authors[index]
    #     print poems[index]
    #     print "*"*50
    # zip函数自动实现上述组合
    results = []
    for value in zip(titles, times, authors, poems):
        title, time, author, poem = value
        result = {
            "标题": title,
            "朝代": time,
            "作者": author,
            "原文": poem
        }
        print result["标题"]
        results.append(result)
    # print results
 
 
def main():
    url_base = "https://www.xzslx.net/gushi/"
    for i in range(1, 11):
        url = url_base.format(i)
        print " "*20+"优美古诗文"+" "*20
        print "*"*50
        parse_page(url)
        print "*"*50
 
 
if __name__ == '__main__':
    main()

2. 输出来的结果是:

C:\DDD\python22\python.exe C:/PyCharm/dytt_spider/poems.py
                    古诗文                    
**************************************************
关山月
明月出天山,苍茫云海间。
长风几×××,吹度玉门关。 
汉下白登道,胡窥青海湾。
[2] 由来征战地,不见有人还。
戍客望边邑,思归多苦颜。 
高楼当此夜,叹息未应闲。
**************************************************
                    古诗文                    
**************************************************
陇西行四首·其二
誓扫匈奴不顾身,五千貂锦丧胡尘。
可怜无定河边骨,犹是春闺梦里人!
**************************************************
                    古诗文                    
**************************************************
嫦娥(嫦娥应悔偷灵药)
云母屏风烛影深, 长河渐落晓星沉。 嫦娥应悔偷灵药, 碧海青天夜夜心。
**************************************************

Process finished with exit code 0

原文地址:http://blog.51cto.com/3214135/2156135

时间: 2024-10-31 08:05:57

古诗文网站的网络爬虫编写方式,通过网络爬虫抓去内容的相关文章

四种网络请求的方式封装网络请求

封装网络请求类便捷, 适合多个地方使用. 第一封装下载方法 前提用Cocoapods或者直接引用第三方AFNetWorking 定义一个类NetWorkingManager, 继承于NSObject A: 在.h中写方法声明 #import <Foundation/Foundation.h> @interface NetWorkManager : NSObject - (void)downLoadWithUrl:(NSString *)url progress:(void(^)(float p

爬虫学习 05.Python网络爬虫之三种数据解析方式

爬虫学习 05.Python网络爬虫之三种数据解析方式 引入 回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指定数据解析.因为大多数情况下的需求,我们都会指定去使用聚焦爬虫,也就是爬取页面中指定部分的数据值,而不是整个页面的数据.因此,本次课程中会给大家详细介绍讲解三种聚焦爬虫中的数据解析方式.至此,我们的数据爬取的流程可以修改为: 指定url 基于r

[转载]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程

我们使用dmoz.org这个网站来作为小抓抓一展身手的对象. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Items):明确你想要抓取的目标 制作爬虫(Spider):制作爬虫开始爬取网页 存储内容(Pipeline):设计管道存储爬取内容 好的,基本流程既然确定了,那接下来就一步一步的完成就可以了. 1.新建项目(Project) 在空目录下按住Shift键右击,选择“在此处打开命令窗口”,输入一

腾讯、网易、新浪新闻网站爬虫编写记录及评论格式分析

0 前言 先说说看这篇博客你能知道什么:1 腾讯.网易.新浪不同新闻的地址格式以及评论内容的地址格式(返回数据为json的异步接口):2 一些比较通用的设计方法,对软件设计的菜鸟可能有帮助: 之前也说了要写这边博客,现在终于写出来了.我的毕业设计的指导老师说毕设论文的字数不够--所以我决定把这些本不应该出现在论文中的实现细节凑到论文中.至于下面说到的东西要解决什么问题,各位可以先看看这个网站(我毕设的初步结果,目前还在优化中,包括代码结构还有UI设计):http://reetseenews.du

北京赛车PK10改单软件——已经整套源码的工作原理和代码的编写方式实战分享

北京赛车PK10改单技术分享. 无需账号和密码,业务QQ:博客昵称或者点击联系.只需要提供网址即可做到无痕修改,大家可以放心下载使用,禁止用于非法行业 本北京赛车PK10改单软件都是免费提供使用的 本软件支持各种网盘程序改单只要能读取到数据库成功率百分之百:支持北京赛车PK10改单.时时彩改单,快三改单 六合彩网站改单,各类高频彩改单,各种数据修改 下面我们来介绍下软件操作的详细的操作步骤 <package id="Microsoft.Web.Infrastructure" ve

【java爬虫】---爬虫+基于接口的网络爬虫

爬虫+基于接口的网络爬虫 上一篇讲了[java爬虫]---爬虫+jsoup轻松爬博客,该方式有个很大的局限性,就是你通过jsoup爬虫只适合爬静态网页,所以只能爬当前页面的所有新闻.如果需要爬一个网 站所有信息,就得通过接口,通过改变参数反复调该网站的接口,爬到该网站的所有数据信息. 本博客以爬金色财经新闻信息为对象,去爬取该网站从建站以来发表的所有新闻信息.下面会一步一步讲解.这里重点重点讲思路,最后我会提供完整源码. 第一步:找接口 你要获得该网站所有新闻数据,第一步当然是获得接口,通过接口

爬虫学习 04.Python网络爬虫之requests模块(1)

爬虫学习 04.Python网络爬虫之requests模块(1) 引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档症.抑郁.头疼.甚至死亡. 今日概要 基于requests的get请求 基于requests模块的post请求 基于requests模块ajax的get请求 基于requests模块ajax的post请求 综合项目练习:爬取国家药品监

爬虫学习 06.Python网络爬虫之requests模块(2)

爬虫学习 06.Python网络爬虫之requests模块(2) 今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 知识点回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 了解cookie和session - 无状态的http协议 如上图所示,HTTP协议 是无状态的协议,用户浏览服务器上的内容,只需要发送页面请求,服务器返回内容.对于服务器来说,并不关心,也并不知道是哪个用户的请求.对于一般浏览性的网页来说

爬虫学习 08.Python网络爬虫之图片懒加载技术、selenium和PhantomJS

爬虫学习 08.Python网络爬虫之图片懒加载技术.selenium和PhantomJS 引入 今日概要 图片懒加载 selenium phantomJs 谷歌无头浏览器 知识点回顾 验证码处理流程 今日详情 动态数据加载处理 一.图片懒加载 什么是图片懒加载? 案例分析:抓取站长素材http://sc.chinaz.com/中的图片数据 #!/usr/bin/env python # -*- coding:utf-8 -*- import requests from lxml import