[Python学习] 简单网络爬虫抓取博客文章及思想介绍
2015-07-25 09:41
891 查看
原文链接:http://www.2cto.com/kf/201410/340479.html
前面一直强调Python运用到网络爬虫方面非常有效,这篇文章也是结合学习的Python视频知识及我研究生数据挖掘方向的知识.从而简单介绍下Python是如何爬去网络数据的,文章知识非常简单,但是也分享给大家,就当简单入门吧!同时只分享知识,希望大家不要去做破坏网络的知识或侵犯别人的原创型文章.主要包括:
1.介绍爬取CSDN自己博客文章的简单思想及过程
2.实现Python源码爬取新浪韩寒博客的316篇文章http://blog.csdn.net/eastmount/article/details/
一.爬虫的简单思想http://blog.csdn.net/eastmount/article/details/
http://blog.csdn.net/eastmount/article/details/最近看刘兵的《Web数据挖掘》知道,在研究信息抽取问题时主要采用的是三种方法:
1.手工方法:通过观察网页及源码找出模式,再编写程序抽取目标数据.但该方法无法处理站点数量巨大情形.
2.包装器归纳:它英文名称叫Wrapper Induction,即有监督学习方法,是半自动的.该方法从手工标注的网页或数据记录集中学习一组抽取规则,从而抽取具有类似格式的网页数据.
3.自动抽取:它是无监督方法,给定一张或数张网页,自动从中寻找模式或语法实现数据抽取,由于不需要手工标注,故可以处理大量站点和网页的数据抽取工作.
这里使用的Python网络爬虫就是简单的数据抽取程序,后面我也将陆续研究一些Python+数据挖掘的知识并写这类文章.首先我想获取的是自己的所有CSDN的博客(静态.html文件),具体的思想及实现方式如下:
第一步 分析csdn博客的源码
首先需要实现的是通过分析博客源码获取一篇csdn的文章,在使用IE浏览器按F12或Google Chrome浏览器右键"审查元素"可以分析博客的基本信息.在网页中http://blog.csdn.net/eastmount链接了作者所有的博文.
显示的源码格式如下:
其中..
表示显示的每一篇博客文章,其中第一篇显示如下:
它的具体html源代码如下:
所以我们只需要获取每页中博客
中的链接,并增加http://blog.csdn.net即可.在通过代码:http://blog.csdn.net/eastmount/article/details/
?
但是CSDN会禁止这样的行为,服务器禁止爬取站点内容到别人的网上去.我们的博客文章经常被其他网站爬取,但并没有申明原创出处,还请尊重原创.它显示的错误"403 Forbidden".
PS:据说模拟正常上网能实现爬取CSDN内容,读者可以自己去研究,作者此处不介绍.参考(已验证):
http://blog.csdn.net/eastmount/article/details/http://www.yihaomen.com/article/python/210.htmhttp://blog.csdn.net/eastmount/article/details/ http://www.2cto.com/kf/201405/304829.htmlhttp://blog.csdn.net/eastmount/article/details/
第二步 获取自己所有的文章
这里只讨论思想,假设我们第一篇文章已经获取成功.下面使用Python的find()从上一个获取成功的位置继续查找下一篇文章链接,即可实现获取第一页的所有文章.它一页显示的是20篇文章,最后一页显示剩下的文章.
那么如何获取其他页的文章呢?http://blog.csdn.net/eastmount/article/details/
我们可以发现当跳转到不同页时显示的超链接为:http://blog.csdn.net/eastmount/article/details/
?
这思想就非常简单了,其过程简单如下:
for(int i=0;i<4;i++) //获取所有页文章
for(int j=0;j<20;j++) //获取一页文章 注意最后一页文章篇数
GetContent(); //获取一篇文章 主要是获取超链接http://blog.csdn.net/eastmount/article/details/
同时学习过通过正则表达式,在获取网页内容图片过程中格外方便.如我前面使用C#和正则表达式获取图片的文章:http://blog.csdn.net/eastmount/article/details/12235521http://blog.csdn.net/eastmount/article/details/
[b]二.爬取新浪博客http://blog.csdn.net/eastmount/article/details/http://blog.csdn.net/eastmount/article/details/[/b]
上面介绍了爬虫的简单思想,但是由于一些网站服务器禁止获取站点内容,但是新浪一些博客还能实现.这里参照"51CTO学院 智普教育的python视频"获取新浪韩寒的所有博客.
地址为:http://blog.sina.com.cn/s/articlelist_1191258123_0_1.html
采用同上面一样的方式我们可以获取每个
..
中包含着一篇文章的超链接,如下图所示:
此时通过Python获取一篇文章的代码如下:http://blog.csdn.net/eastmount/article/details/
http://blog.csdn.net/eastmount/article/details/
?
可以显示获取的文章,现在需要获取一篇文章的超链接,即:
《论电影的七个元素》——关于我对电…
在没有讲述正则表达式之前使用Python人工获取超链接http,从文章开头查找第一个"<a title",然后接着找到"href="和" .html"即可获取"http:="" blog.sina.com.cn="" s="" blog_4701280b0102eo83.html".代码如下:http:="" blog.csdn.net="" eastmount="" article="" details="" <="" strong="">
<a title",然后接着找到"href="和" .html"即可获取"http:="" blog.sina.com.cn="" s="" blog_4701280b0102eo83.html".代码如下:http:="" blog.csdn.net="" eastmount="" article="" details="" <="" strong="">
?
前面一直强调Python运用到网络爬虫方面非常有效,这篇文章也是结合学习的Python视频知识及我研究生数据挖掘方向的知识.从而简单介绍下Python是如何爬去网络数据的,文章知识非常简单,但是也分享给大家,就当简单入门吧!同时只分享知识,希望大家不要去做破坏网络的知识或侵犯别人的原创型文章.主要包括:
1.介绍爬取CSDN自己博客文章的简单思想及过程
2.实现Python源码爬取新浪韩寒博客的316篇文章http://blog.csdn.net/eastmount/article/details/
一.爬虫的简单思想http://blog.csdn.net/eastmount/article/details/
http://blog.csdn.net/eastmount/article/details/最近看刘兵的《Web数据挖掘》知道,在研究信息抽取问题时主要采用的是三种方法:
1.手工方法:通过观察网页及源码找出模式,再编写程序抽取目标数据.但该方法无法处理站点数量巨大情形.
2.包装器归纳:它英文名称叫Wrapper Induction,即有监督学习方法,是半自动的.该方法从手工标注的网页或数据记录集中学习一组抽取规则,从而抽取具有类似格式的网页数据.
3.自动抽取:它是无监督方法,给定一张或数张网页,自动从中寻找模式或语法实现数据抽取,由于不需要手工标注,故可以处理大量站点和网页的数据抽取工作.
这里使用的Python网络爬虫就是简单的数据抽取程序,后面我也将陆续研究一些Python+数据挖掘的知识并写这类文章.首先我想获取的是自己的所有CSDN的博客(静态.html文件),具体的思想及实现方式如下:
第一步 分析csdn博客的源码
首先需要实现的是通过分析博客源码获取一篇csdn的文章,在使用IE浏览器按F12或Google Chrome浏览器右键"审查元素"可以分析博客的基本信息.在网页中http://blog.csdn.net/eastmount链接了作者所有的博文.
显示的源码格式如下:
其中..
表示显示的每一篇博客文章,其中第一篇显示如下:
它的具体html源代码如下:
所以我们只需要获取每页中博客
中的链接,并增加http://blog.csdn.net即可.在通过代码:http://blog.csdn.net/eastmount/article/details/
?
PS:据说模拟正常上网能实现爬取CSDN内容,读者可以自己去研究,作者此处不介绍.参考(已验证):
http://blog.csdn.net/eastmount/article/details/http://www.yihaomen.com/article/python/210.htmhttp://blog.csdn.net/eastmount/article/details/ http://www.2cto.com/kf/201405/304829.htmlhttp://blog.csdn.net/eastmount/article/details/
第二步 获取自己所有的文章
这里只讨论思想,假设我们第一篇文章已经获取成功.下面使用Python的find()从上一个获取成功的位置继续查找下一篇文章链接,即可实现获取第一页的所有文章.它一页显示的是20篇文章,最后一页显示剩下的文章.
那么如何获取其他页的文章呢?http://blog.csdn.net/eastmount/article/details/
我们可以发现当跳转到不同页时显示的超链接为:http://blog.csdn.net/eastmount/article/details/
?
for(int i=0;i<4;i++) //获取所有页文章
for(int j=0;j<20;j++) //获取一页文章 注意最后一页文章篇数
GetContent(); //获取一篇文章 主要是获取超链接http://blog.csdn.net/eastmount/article/details/
同时学习过通过正则表达式,在获取网页内容图片过程中格外方便.如我前面使用C#和正则表达式获取图片的文章:http://blog.csdn.net/eastmount/article/details/12235521http://blog.csdn.net/eastmount/article/details/
[b]二.爬取新浪博客http://blog.csdn.net/eastmount/article/details/http://blog.csdn.net/eastmount/article/details/[/b]
上面介绍了爬虫的简单思想,但是由于一些网站服务器禁止获取站点内容,但是新浪一些博客还能实现.这里参照"51CTO学院 智普教育的python视频"获取新浪韩寒的所有博客.
地址为:http://blog.sina.com.cn/s/articlelist_1191258123_0_1.html
采用同上面一样的方式我们可以获取每个
..
中包含着一篇文章的超链接,如下图所示:
此时通过Python获取一篇文章的代码如下:http://blog.csdn.net/eastmount/article/details/
http://blog.csdn.net/eastmount/article/details/
?
《论电影的七个元素》——关于我对电…
在没有讲述正则表达式之前使用Python人工获取超链接http,从文章开头查找第一个"<a title",然后接着找到"href="和" .html"即可获取"http:="" blog.sina.com.cn="" s="" blog_4701280b0102eo83.html".代码如下:http:="" blog.csdn.net="" eastmount="" article="" details="" <="" strong="">
<a title",然后接着找到"href="和" .html"即可获取"http:="" blog.sina.com.cn="" s="" blog_4701280b0102eo83.html".代码如下:http:="" blog.csdn.net="" eastmount="" article="" details="" <="" strong="">
?
相关文章推荐
- 使用ConnectivityManager监听网络状态变化
- Android http超时选项的测试
- Android http超时选项的测试
- google linux kernel tcp reuseport patch
- 网络与通信---android以不同的方式访问两个不同的网页
- 云计算和大数据时代网络技术揭秘(十六)数据中心布线
- Go语言练习:网络编程实例——简易图片上传网站
- 22_Android中的本地音乐播放器和网络音乐播放器的编写,本地视频播放器和网络视频播放器,照相机案例,偷拍案例实现
- KVM 【SNAT/DNAT2种配置实现以及扁平化网络模式(flat)实现/virsh2种动态迁移实现】
- KVM 【SNAT/DNAT2种配置实现以及扁平化网络模式(flat)实现/virsh2种动态迁移实现】 分类: Linux kvm 网络通讯 2015-07-25 00:05 322人阅读 评论(0) 收藏
- 使用netty4.x 编写TCP服务器关于握手问题
- HTTP协议
- H3C 网络设备基本调试
- 天下武功尽出LAMP之http篇(3)
- 天下武功尽出LAMP之http篇(3)
- TCP三次握手与防火墙规则
- BP神经网络(检测故障的实例)
- 网络请求特殊字符处理问题
- dubbo基于http协议嵌入现有框架配置方法。
- 《Unix网络编程卷1-套接字联网API》第一个例子编译