网络爬虫-python和数据分析

网络爬虫-python和数据分析

ID:22980989

大小:5.88 MB

页数:35页

时间:2018-11-02

网络爬虫-python和数据分析_第1页
网络爬虫-python和数据分析_第2页
网络爬虫-python和数据分析_第3页
网络爬虫-python和数据分析_第4页
网络爬虫-python和数据分析_第5页
资源描述:

《网络爬虫-python和数据分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、网络爬虫,Python和数据分析王澎中国科技大学什么是网络爬虫?•网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件爬虫有什么用?•做为通用搜索引擎网页收集器。(google,baidu)•做垂直搜索引擎.(找工作的搜索引擎:www.deepdo.com,数据来源于:www.51job.com,www.zhaoping.com,www.chinahr.co

2、m等等)•科学研究:在线人类行为,在线社群演化,人类动力学研究,计量社会学,复杂网络,数据挖掘,等领域的实证研究都需要大量数据,网络爬虫是收集相关数据的利器。•偷窥,hacking,发垃圾邮件……(《googlehack》….)爬虫是搜索引擎的第一步也是最容易的一步•网页搜集•建立索引•查询排序用什么语言写爬虫?•C,C++。高效率,快速,适合通用搜索引擎做全网爬取。缺点,开发慢,写起来又臭又长,例如:天网搜索源代码。•脚本语言:Perl,Python,Java,Ruby。简单,易学,良好的文本处理能方便网页内容的细致提取,但效率往往不高,适

3、合对少量网站的聚焦爬取•C#?(貌似信息管理的人比较喜欢的语言)我曾经用来写过爬虫的语言•Perl:古老的脚本语言,hack语言,被用来写爬虫有着悠久的历史,因此,书本支持相当丰富:《spideringhacks》,《Perl&LWP》;强大的文本处理能力,数据库支持能力。缺点:有点怪异。•Python:相对年轻一点的语言。对于爬虫来说各方面能力还行,并且还在完善中,没有Perl那样有专门的爬虫书籍,不过网上能搜到一些文章。为什么最终选择Python?•跨平台,对Linux和windows都有不错的支持。•科学计算,数值拟合:Numpy,Sc

4、ipy•可视化:2d:Matplotlib(做图很漂亮),3d:Mayavi2•复杂网络:Networkx•统计:与R语言接口:Rpy•交互式终端•网站的快速开发?从一个简单的Python爬虫开始说明:加说明语句时要注意#需要英文编码里的,而不能是中文输入法中的#号,所以添加中文说明时先在英文输入法下打入#号后再切换到中文输入瀚海星云Pie版的网页部分代码………Pie版的Html树部分结构利用BeautifulSoup剖析树FindAll()是最方便最好用的函数通用搜索策略•页面中的link•深度优先•广度优先现实中的策略是多种多样的•因为瀚

5、海星云link有很简单的规律,每页递减20,所以利用这个规律设置每次赋入的URL,这样爬完了PIE版所有帖子运行结果•有乱码!!爬取中文网页常有的问题:不规格的编码模式•解决方法:编码转换最后的结果•Perfect!请温柔的对待瀚海星云!!•设置延迟时间(对于一个论坛,如果假设一个真实的浏览者每10秒翻开一个新的网页的话,一个不延时的爬虫每秒可以抓10个网页,这样一个爬虫相当于占用了100个人的带宽!)•在午夜爬取可以适当加快速度道上的规矩:用Mysql存储数据•先要在自己数据库里建立一个空的表,这里,这里我已经建立了一个名为lilybbs的

6、数据库,表名为hunan_a•导入相应的模块•与相应的数据库连接•写入数据库里的结果统计和做图•这部分主要用于科研方面,利用爬取到的数据做一些简单的统计工作•右图是某论坛的回复网络,使用python的networkx包做的。•Pylab是matplotlib作图包的一部分•左图是某blog四年间每天发表文章的数量•左一是某blog网站每个blog评论数的统计,x是blog评论数量,y是有这样数量的blog的数量。可以看到是标准的“power-law”分布,幂指数为-1.2左右,拟合使用了Scipy包的optimize.leastsq,函数,具

7、体可见scipycookbook页面的fittingdata一栏•左二是blog的commentnetworks的入度与出度的散点图,也就是每个点的坐标x,y分别代表某个人获得的评论和发出的评论数。颜色代表这样点的数量。本图使用了matplotlib中的hexbin函数高级主题(一):编写更健壮的爬虫•伪装成浏览器•容错高级主题(二):由内嵌脚本产生的动态网页的爬取•如何爬取像左图这样的网页呢?•它显示的内容并不会呈现在html文件里。高级主题(三):SQLAlchemyMysql这样关系型数据库的缺点:在表示复杂网络这样一对多,和多对多的关

8、系时,非常冗余;一旦需要做比较复杂的统计,sql语句会变得异常复杂。•当你越关注性能,就会发现SQL数据库离对象集合越来越远;当你越关注抽象,就会发现对象集合离表和

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。