第一个简单Python爬虫:抓取古诗文网中李白的诗歌
2018年10月11日 这是第一个博客,嘻嘻~~~~
最近老师给了个任务:爬取诗歌。于是乎,走上了爬虫道路,爬取了李白的诗歌。
感谢代码的原作者(唐诗三百首,源代码)。
遇到的问题与收获:
1.熟悉了正则表达式在HTML中的匹配规则,能够编写出相应的正则表达式
2.不能利用正则表达式返回同一页面多个相同标签的内容
附上代码
# -*- coding:utf-8 -*-
import re
import requestsdef crawl(start_url):base_url = 'http://so.gushiwen.org'req_headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}for i in range(1, 126):restart_url = start_url + str(i) + '.aspx'print(restart_url)res = requests.get(restart_url, headers=req_headers)if res.status_code == requests.codes.ok:html = res.text# 获取所有诗的链接parttern_href = re.compile(r'<div class="cont">.*?<p><a .*? href="(.*?)" .*?>.*?</p>', flags=re.DOTALL)hrefs = re.findall(parttern_href, html)# 获取每一首诗的内容,并保存到本地with open('李白诗集.txt', mode='a', encoding='utf-8') as f:for href in hrefs:href = base_url + hrefres = requests.get(href, headers=req_headers)if res.status_code == requests.codes.ok:html = res.text# 标题parttern_title = re.compile(r'<div class="cont">.*?<h1 .*?>(.*?)</h1>', re.DOTALL)title = re.search(parttern_title, html).group(1)# 内容parttern_content = re.compile(r'<div class="cont">.*?<div class="contson" id=".*?">(.*?)</div>',re.DOTALL)content = re.search(parttern_content, html).group(1)content = re.sub(r'<br />', '\n', content)content = re.sub(r'<p>', '', content)content = re.sub(r'</p>', '', content)print('正在获取 {title}'.format(title=title))f.write('{title}{content}\n'.format(title=title, content=content))if __name__ == '__main__':start_url = 'https://so.gushiwen.org/authors/authorvsw_b90660e3e492A'crawl(start_url)
运行结果
第一个简单Python爬虫:抓取古诗文网中李白的诗歌相关推荐
- Python爬虫爬取古诗文网站项目分享
作为一个靠python自学入门的菜鸟,想和大家分享自己写的第一个也是目前为止唯一一个爬虫代码 写爬虫要具备的能力基础:python入门基础,html5基础知识,然后这边用的是scrapy框架,所以还要 ...
- Python爬虫-抓取PC端网易云音乐评论(GUI界面)
歌曲搜素 网易云音乐网址为:https://music.163.com/ 思路是进入后输入一个歌曲名,点击搜索按钮,通过开发者调试工具捕获搜索请求,捕获到的数据信息如下: 所有的歌曲相关信息都在res ...
- Python爬虫抓取去哪儿网景点信息告诉你国庆哪儿最堵
摘要 本文主要介绍了使用Python抓取去哪儿网站的景点信息并使用BeautifulSoup解析内容获取景点名称.票销售量.景点星级.热度等数据,然后使用xlrd.xlwt.xlutils等库来处理E ...
- python爬虫——抓取煎蛋网ooxx妹子图的一个小工具
一点学习成果,仅限学习交流! 一.部分源码: def get_page(html):# 获取下一页链接start1 = str(html).find("Older Comments" ...
- 【python教程入门学习】Python爬虫抓取猫眼电影排行榜
本节使用 Python 爬虫抓取猫眼电影网 TOP100 排行榜(https://maoyan.com/board/4)影片信息,包括电影名称.上映时间.主演信息. 在开始编写程序之前,首先要确定页面 ...
- 用python爬虫下载视频_使用Python编写简单网络爬虫抓取视频下载资源
我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚 ...
- 如何使用Python爬虫抓取数据?
Python爬虫应用十分广泛,无论是各类搜索引擎,还是日常数据采集,都需要爬虫的参与.其实爬虫的基本原理很简单,今天小编就教大家如何使用Python爬虫抓取数据,感兴趣的小伙伴赶紧看下去吧! 工具安装 ...
- python 爬虫抓取心得分享
/** author: insun title:python 爬虫抓取心得分享 blog:http://yxmhero1989.blog.163.com/blog/static/11215795620 ...
- python爬虫招聘-Python爬虫抓取智联招聘(基础版)
原标题:Python爬虫抓取智联招聘(基础版) 作者:C与Python实战 「若你有原创文章想与大家分享,欢迎投稿.」 对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪 ...
最新文章
- ajax传html调用样式的问题
- SD--如何在输出控制中增加自定义字段
- 设c语言中 一个int型数据库,最新真实全国二级C选择题真题第1套
- StringFormat
- Java 8 中的哈希表
- 编译安装httpd-2.4.12
- AndroidStudio_从Eclipse到AndroidStudio开发工具_两者使用的区别_通过向导新建项目和引入module---Android原生开发工作笔记68
- 优秀自我简介200字_自我简介200字左右7篇
- Android底层控制系统设置的命令集合
- 简析边缘数据中心技术
- 造价120万人民币,日本这款美女机器人是你梦寐以求的机器人老婆吗?
- 0ffice2003安装2007兼容包不能使用的解法
- 数字图像处理 离散余弦变换(DCT)和峰值信噪比(PSNR)
- php微信开发之微信卡券
- 操作系统中的基础抽象
- 联想g510拆键盘的简单方法_笔记本键盘怎么拆 教你如何正确拆笔记本键盘 (全文)...
- 大厂智力题讲解,学它!!!!(一)
- 华为小实例|VRRP协议
- 2.07 CISC与RISC
- 上交所几大业务平台简介