python3自动爬笑话(留下学习)
学校的服务器可以上外网了,所以打算写一个自动爬取笑话并发到bbs的东西,从网上搜了一个笑话网站,感觉大部分还不太冷,html结构如下:
可以看到,笑话的链接列表都在<div class="list_title">里面,用正则表达式可以把最近的几个笑话地址找出来,再进到一个笑话页面看下:
每一个笑话页面里面是有多个小笑话组成的,全部在<span id="text110">标签下,每个小笑话又单独一个<p>包裹,这样非常容易就可以把每个单独笑话放到一个list中。由于我爬笑话的目的是每天白天一个小时发一个笑话,所以爬取20个是足够的了,每个页面平均有5个小笑话,爬4个页面就OK啦。这里有几个细节,这个笑话网有的链接是有中文的,比如:
- <a href="/jokehtml/冷笑话/2014051200030765.htm" target="_blank">读书破万卷,搞笑如有神</a>
直接urllib.request.urlopen函数不能解析中文的URL,必须要urllib.parse先转码一下才能正确解析。还有一个细节是每段的小笑话之间是有换行的,用正则表达式的“.”是不能匹配换行符的,需要改成“[\w\W]”才能匹配。好了,下面是代码:
- import urllib.request
- import urllib.parse
- import re
- rule_joke=re.compile('<span id=\"text110\">([\w\W]*?)</span>')
- rule_url=re.compile('<a href=\"(.*?)\"target=\"_blank\" >')
- mainUrl='http://www.jokeji.cn'
- url='http://www.jokeji.cn/list.htm'
- req=urllib.request.urlopen(url)
- html=req.read().decode('gbk')
- urls=rule_url.findall(html)
- f=open('joke.txt','w')
- for i in range(4):
- url2=urllib.parse.quote(urls[i])
- joke_url=mainUrl+url2
- req2=urllib.request.urlopen(joke_url)
- html2=req2.read().decode('gbk')
- joke=rule_joke.findall(html2)
- jokes=joke[0].split('<P>')
- for i in jokes:
- i=i.replace('</P>','')
- i=i.replace('<BR>','')
- i=i[2:]
- f.write(i)
- f.close()
看下爬取的结果:
这样,每行是一个单独的笑话,方便其他程序使用。
转载请注明:转自http://blog.csdn.net/littlethunder/article/details/25693641
python3自动爬笑话(留下学习)相关推荐
- python3自动爬笑话
学校的服务器可以上外网了,所以打算写一个自动爬取笑话并发到bbs的东西,从网上搜了一个笑话网站,感觉大部分还不太冷,html结构如下: 可以看到,笑话的链接列表都在<div class=& ...
- python3自动爬取网页资源并保存为epub电子书
使用Python获取网页内容并生成EPUB格式电子书 前言 EPUB的介绍 思路 代码示例 前言 现在的有很多电子书都不能下载了,只能在线看,但是广告又多.所以想编个程序抓取这些内容生成电子书. EP ...
- Python3从零开始爬取今日头条的新闻【五、解析头条视频真实播放地址并自动下载】
Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...
- python3爬虫系列03之requests库:根据关键词自动爬取下载百度图片
python3爬虫系列03之requests库:根据关键词自动爬取下载百度图片 1.前言 在上一篇文章urllib使用:根据关键词自动爬取下载百度图片 当中,我们已经分析过了百度图片的搜索URL的变化 ...
- python3自己主动爬笑话
学校的server能够上外网了,所以打算写一个自己主动爬取笑话并发到bbs的东西,从网上搜了一个笑话站点,感觉大部分还不太冷.html结构例如以下: 能够看到,笑话的链接列表都在<div cla ...
- Python3从零开始爬取今日头条的新闻【一、开发环境搭建】
Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...
- 使用Selenium模拟浏览器,实现自动爬取数据
最近需要在一个网站下载一批数据.但是输入一个查询,返回三四万条结果,每次只能导出500条,而且每次还得输入下载条目的范围!这样点击下载,还不要了我的老命.于是乎想自动化这个过程. 我的需求主要是两点: ...
- python 模拟浏览器selenium_使用Selenium模拟浏览器,实现自动爬取数据
最近需要在一个网站下载一批数据.但是输入一个查询,返回三四万条结果,每次只能导出500条,而且每次还得输入下载条目的范围!这样点击下载,还不要了我的老命.于是乎想自动化这个过程. 我的需求主要是两点: ...
- python3+selenium爬取笔记本电脑详情信息
python3+selenium爬取购物商店 准备工作 分析 url xpath 附完整代码 准备工作 # 用到的包 selenium #Web自动化测试工具 urllib #URL地址中查询参数进行 ...
最新文章
- 再次刷新单模型纪录!快手登顶多模态理解权威榜单VCR
- linux usr local权限,OS X权限被拒绝/ usr/local/lib
- Java FAQ(6)
- Linux日志系统-08:定时执行脚本
- arr.sort的排序原理
- ASP.NET Core Razor 标签助手 - ASP.NET Core 基础教程 - 简单教程,简单编程
- [PHP] 存储改造中的逻辑和清理遗留的问题
- js检测鼠标是否在操作_原生JS趣味demo:炫酷头像鼠标追随效果的实现
- .NET串口通讯解决方案
- php5.5开发环境配置,windows下配置php5.5开发环境及开发扩展
- 201509-2-日期计算
- Leap Motion 上手体验
- Atitit.md5 实现原理
- Demo:第四章:Gateway网关
- C++之 Eigen-3.4.0 全方位教程:Chapter02-矩阵篇
- 支持ipv6路由器有什么优点?路由器应用了哪些技术?
- mysql远程3306不通_mysql服务器3306端口不能远程连接的解决
- 子网掩码的作用和用法
- OpenGL-曲面细分
- Introduction1.1:模糊投影几何学