hadoop如何分析论坛评论数据?我现在想到的方案是:用爬虫从某论坛抓取数据,抓取到数据之后我直接
crontab做定时执行脚本,hive的直接放脚本里,mr的打成jar通过脚本运行。
爬数据—数据清洗—每个评论lucence分词-取部分评论定义标签,好评中评差评—通过贝叶斯学习获得分类器模型—对测试数据预测—结果保存Python网站爬虫只能爬自己所选的网址?
思路
1. 网站地图(首先爬一个网站的首页,然后得到首页里面的超链接,这样就可以得到这个网站的二级页面,然后继续,最终爬去这个网站所有的页面)
2. 互联网(假如你得到了一个超链接,那么就可以得到另一个,就可以继续得到另一个,继续下去,就可以得到整个互联网)
注意:
1. 抓取数据时,需要分析特定网站的结构,一遍能抓取特定的数据
2. 抓取的时候,应该支持多线程,这样才能在有限的生命中爬取完需要的数据有哪些网站用爬虫爬取能得到很有价值的数据
一般有一下几种
一些常用的方法
IP代理
对于IP代理,各个语言的Native Request API都提供的IP代理响应的API, 需要解决的主要就是IP源的问题了.
网络上有廉价的代理IP(1元4000个左右), 我做过简单的测试, 100个IP中, 平均可用的在40-60左右, 访问延迟均在200以上.
网络有高质量的代理IP出售, 前提是你有渠道.
因为使用IP代理后, 延迟加大, 失败率提高, 所以可以将爬虫框架中将请求设计为异步, 将请求任务加入请求队列(RabbitMQ,Kafka,Redis), 调用成功后再进行回调处理, 失败则重新加入队列. 每次请求都从IP池中取IP, 如果请求失败则从IP池中删除该失效的IP.
Cookies
有一些网站是基于cookies做反爬虫, 这个基本上就是如 @朱添一 所说的, 维护一套Cookies池
注意研究下目标网站的cookies过期事件, 可以模拟浏览器, 定时生成cookies
限速访问
像开多线程,循环无休眠的的暴力爬取数据, 那真是分分钟被封IP的事, 限速访问实现起来也挺简单(用任务队列实现), 效率问题也不用担心, 一般结合IP代理已经可以很快地实现爬去目标内容.
一些坑
大批量爬取目标网站的内容后, 难免碰到红线触发对方的反爬虫机制. 所以适当的告警提示爬虫失效是很有必有的.
一般被反爬虫后, 请求返回的HttpCode为403的失败页面, 有些网站还会返回输入验证码(如豆瓣), 所以检测到403调用失败, 就发送报警, 可以结合一些监控框架, 如Metrics等, 设置短时间内, 告警到达一定阀值后, 给你发邮件,短信等.
当然, 单纯的检测403错误并不能解决所有情况. 有一些网站比较奇葩, 反爬虫后返回的页面仍然是200的(如去哪儿), 这时候往往爬虫任务会进入解析阶段, 解析失败是必然的. 应对这些办法, 也只能在解析失败的时候, 发送报警, 当告警短时间到达一定阀值, 再触发通知事件.
当然这个解决部分并不完美, 因为有时候, 因为网站结构改变, 而导致解析失败, 同样回触发告警. 而你并不能很简单地区分, 告警是由于哪个原因引起的.四周实现爬虫网站怎么样
写爬虫的话,推荐大家使用神箭手云爬虫写爬虫,完全在云上编写和执行爬虫,不需要配置任何开发环境,快速开发快速实现。
?
简单几行 javascript 就可以实现复杂的爬虫,同时提供很多功能函数:反反爬虫、 js 渲染、数据发布、图表分析、反防盗链等,这些在开发爬虫过程中经常会遇到的问题都由神箭手帮你解决。
神箭手上有开发者文档,详细说明了如何编写爬虫脚本,还有很多网站的源码分享哦。
爬虫面对如此多重复的标签,应该怎么爬才能爬到自己
二、爬虫工程师需要掌握哪些技能?
我见过这样的说法:“爬虫是低级、重复性很多的工作,没有发展前途”。
这是误解。
首先,对于程序员来说基本上不存在重复性的工作,任何重复劳动都可以通过程序自动解决。
例如博主之前要抓十几个相似度很高但是html结构不太一样的网站,我就写了一个简单的代码生成器,从爬虫代码到单元测试代码都可以自动生成,只要对应html结构稍微修改一下就行了。
所以我认为,重复性的劳动在编程方面来说基本上是不存在的,如果你认为自己做的工作是重复性的,说明你比较勤快,不愿意去偷懒。
而我还认为,勤快的程序员不是好程序员。
下面我根据自己这段时间的工作经历,讲一讲爬虫需要哪些相关的技能。
1.基本的编码基础(至少一门编程语言)
这个对于任何编程工作来说都是必须的。
基础的数据结构你得会吧。
数据名字和值得对应(字典),对一些url进行处理(列表)等等。
事实上,掌握的越牢固越好,爬虫并不是一个简单的工作,也并不比其他工作对编程语言的要求更高。
熟悉你用的编程语言,熟悉相关的框架和库永远是无害。
我主要用Python,用Java写爬虫的也有,理论上讲任何语言都可以写爬虫的,不过最好选择一门相关的库多,开发迅速的语言。
用C语言写肯定是自找苦吃了。
2.任务队列
当爬虫任务很大的时候,写一个程序跑下来是不合适的:
如果中间遇到错误停掉,重头再来?这不科学我怎么知道程序在哪里失败了?任务和任务之间不应该相互影响如果我有两台机器怎么分工?所以我们需要一种任务队列,它的作用是:讲计划抓取的网页都放到任务队列里面去。
然后worker从队列中拿出来一个一个执行,如果一个失败,记录一下,然后执行下一个。
这样,worker就可以一个接一个地执行下去。
也增加了扩展性,几亿个任务放在队列里也没问题,有需要可以增加worker,就像多一双亏筷子吃饭一样。
常用的任务队列有kafka,beanstalkd,celery等。
3.数据库
这个不用讲了,数据保存肯定要会数据库的。
不过有时候一些小数据也可以保存成json或者csv等。
我有时想抓一些图片就直接按照文件夹保存文件。
推荐使用NoSQL的数据库,比如mongodb,因为爬虫抓到的数据一般是都字段-值得对应,有些字段有的网站有有的网站没有,mongo在这方面比较灵活,况且爬虫爬到的数据关系非常非常弱,很少会用到表与表的关系。
4.HTTP知识
HTTP知识是必备技能。
因为要爬的是网页,所以必须要了解网页啊。
首先html文档的解析方法要懂,比如子节点父节点,属性这些。
我们看到的网页是五彩斑斓的,只不过是被浏览器处理了而已,原始的网页是由很多标签组成的。
处理最好使用html的解析器,如果自己用正则匹配的话坑会很多。
我个人非常喜欢xpath,跨语言,表达比价好,但是也有缺点,正则、逻辑判断有点别扭。
HTTP协议要理解。
HTTP协议本身是无状态的,那么“登录”是怎么实现的?这就要求去了解一下session和cookies了。
GET方法和POST方法的区别(事实上除了字面意思不一样没有任何区别)。
浏览器要熟练。
爬虫的过程其实是模拟人类去浏览器数据的过程。
所以浏览器是怎么访问一个网站的,你要学会去观察,怎么观察呢?Developer Tools!Chrome的Developer Tools提供了访问网站的一切信息。
从traffic可以看到所有发出去的请求。
copy as curl功能可以给你生成和浏览器请求完全一致的curl请求!我写一个爬虫的一般流程是这样的,先用浏览器访问,然后copy as curl看看有哪些header,cookies,然后用代码模拟出来这个请求,最后处理请求的结果保存下来。
5.运维
这个话题要说的有很多,实际工作中运维和开发的时间差不多甚至更多一些。
维护已经在工作的爬虫是一个繁重的工作。
随着工作时间增加,一般我们都会学着让写出来的爬虫更好维护一些。
比如爬虫的日志系统,数据量的统计等。
将爬虫工程师和运维分开也不太合理,因为如果一个爬虫不工作了,那原因可能是要抓的网页更新了结构,也有可能出现在系统上,也有可能是当初开发爬虫的时候没发现反扒策略,上线之后出问题了,也可能是对方网站发现了你是爬虫把你封杀了,所以一般来说开发爬虫要兼顾运维。
所以爬虫的运维我可以提供下面几个思路:
首先,从数据增量监控。
定向爬虫(指的是只针对一个网站的爬虫)比较容易,一段时间之后对一些网站的数据增量会有一个大体的了解。
经常看看这些数据的增加趋势是否是正常就可以了(Grafana)。
非定向爬虫的数据增量不是很稳定,一般看机器的网络状况,网站的更新情况等(这方面我的经验不多)。
然后看爬虫执行的成功情况。
在上面提到了用任务队列控制爬虫工作,这样解耦可以带来很多好处,其中一个就是可以就是可以对一次爬虫执行进行日志。
可以在每次爬虫任务执行的时候,将执行的时间、状态、目标url、异常等放入一个日志系统(比如kibana),然后通过一个可视化的手段可以清晰地看到爬虫的失败率。
爬虫抛出的Exception。
几乎所有的项目都会用到错误日志收集(Sentry),这里需要注意的一点是,忽略正常的异常(比如Connection错误,锁冲突等),否则的话你会被这些错误淹没。
怎样能让自己的网站被搜索爬虫抓到??
首先 [站长必知] 各大搜索引擎的网站提交入口,如果想要搜索引擎快速的收录你的网站,当你建站好之后的第一件事情应该是去各大的搜索引擎去提交你的网站,以便搜索引擎快速的收录你的网站,给你的网站带来流量。
各大搜索引擎网站登录入口。
Google网站登录 /intl/zh-CN/add_url.html
Baidu 网站登录 /search/url_submit.html
Yahoo 网站登录 /h4_4.html
Live网站登录 /docs/submit.aspx?FORM=WSDD2
Dmoz网站登录 /World/Chinese_Simplified
Coodir网站目录登录 /ounts/addsite.asp
Alexa 网站登录 /site/help/webmasters
Sogou 非商业登录 /regurl/regform.asp
中国搜索网站登录 /register/page.jsp
iAsk网站登录 /guest/add_url.php
搜索引擎收录查询 /
有道搜索网站登录 /report
oona 网站登录 /public/submit_website.jsp
搜索引擎批量提交 /cgi-bin/dir/addurl.cgi
搜索引擎批量提交 /big5/submit/addurl.htm
搜索引擎批量提交 /
提交之后站长们就要耐心的等待几天,那么你的网站会很快的被收录的。
第二常去百度贴吧、Q 吧、百度知道、QQ问问,这几个站去自问自答(但前题不要被别人发现你在唱双簧)呵呵` ,具体就不用我教了吧。
第三。
自己要学的很勤快。
网站要常常更新。
而且是每天更新。
哪怕是更新的少。
但也坚持手动更新。
哪怕复制别人的文章。
但你只要改一下段落。
或者多几个,或少几个字把标题换一下,修改一下,那么百度就会以为你发表的这个文章是原创(难听点的话就是伪原创)
第四适应用采集这个功能。
也没事的。
可以把采集的文章,自己在重新一篇一篇的编辑,把标题和段落修改一下,百度就会以为你是原创了。
就会收录你的文章的
第五。
刚开始的新站。
做有点难,但自己勤快些。
没有做不成的事,可以去同类网站上找一下,友情连接。
加上站长的Q 问下他们做友情连接不?(这里要知道的就是,一天最多可以加三个友情连接)加多了百度会处罚你的站的(这里你说处罚是什么:刷。
瓶子丢来一大堆。
汗~~~ 有些站长急了说,连处罚都不知道。
我在这里给菜鸟站长说下……老鸟可以飞速飞过这里……看那天空是蓝的……)
第六做友情连接之前要先检查一下。
对方站是否有无被百度K 掉或者违规,或者SEO 过度导致百度SITE不到首页的就先观查几天,暂时不跟他做连接的。
第七了解一下百度蜘蛛这个名词,推荐你看这个网址百度蜘蛛会有你想了解的。
第八好好的关注百度的动态。
一般百度都是每个星期三会小更新一次,就是说那天之前你无论如何都要更新一下网站,到了星期三等百度重新更新你的页面就OK了。
第九三个月后你的站的变化就会出现大幅度变化的。
每天定时观查一下你的站。
看有无细微变化当在网上一年了就开始算一个老站了。
第十网站有点流量了,可以去挂个阿里妈妈的广告玩下子!慢慢的挂GOOGLE或者百度联盟的都行(或者一些正规的有网站备案或营业证的广告联盟。
站上申请几个广告代码放自己站整几下子赚点银子!)
第一注意事项网站提交后……文章内容一定要坚持天天更新。
第二注意事项网站内容没有原创发表,就弄些伪原创顶上去。
第三注意事项网站的广告不要放的太多了。
建议新建不要放弹窗广告。
不然有第一次来访,决对不会有第二次来访(会吓走尊贵的客人的)
第四注意事项记得去百度贴吧 Q吧百度知道 QQ 问问去留下你站的身影
第五注意事项友情连接作好。
而且要第天定时观查你做的友情连接有无被K 或降权!
第六注意事项好的开始就要来了,没有一口就能长成胖子的,网站要慢慢做,细水常流,而不是做垃圾站
第七注意事项刚开始的小站,放点广告。
赚点养它自己的资本!
第八注意事项天天观查站。
多去学习下建站经验,了解基本的SEO.百度蜘蛛,怎样勾引蜘蛛到你站等等。
近日快云科技发布了最新的夏季优惠促销活动,主要针对旗下的香港CN2 GIA系列的VPS云服务器产品推送的最新的75折优惠码,国内回程三网CN2 GIA,平均延迟50ms以下,硬件配置方面采用E5 2696v2、E5 2696V4 铂金Platinum等,基于KVM虚拟架构,采用SSD硬盘存储,RAID10阵列保障数据安全,有需要香港免备案CN2服务器的朋友可以关注一下。快云科技怎么样?快云科技好不...
Friendhosting发布了今年黑色星期五促销活动,针对全场VDS主机提供45折优惠码,虚拟主机4折,老用户续费可获9折加送1个月使用时长,优惠后VDS最低仅€14.53/年起,商家支持PayPal、信用卡、支付宝等付款方式。这是一家成立于2009年的老牌保加利亚主机商,提供的产品包括虚拟主机、VPS/VDS和独立服务器租用等,数据中心可选美国、保加利亚、乌克兰、荷兰、拉脱维亚、捷克、瑞士和波...
buyvm正式对外开卖第四个数据中心“迈阿密”的块存储服务,和前面拉斯维加斯、纽约、卢森堡一样,依旧是每256G硬盘仅需1.25美元/月,最大支持10T硬盘。配合buyvm自己的VPS,1Gbps带宽、不限流量,在vps上挂载块存储之后就可以用来做数据备份、文件下载、刷BT等一系列工作。官方网站:https://buyvm.net支持信用卡、PayPal、支付宝付款,支付宝付款用的是加元汇率,貌似...
爬虫论坛为你推荐
水晶易表水晶报表是什么?主要有什么用处?12种颜色油画的基本12种颜色是什么网络电话永久免费打有没有永久免费的网络电话数据挖掘项目怎样利用大数据挖掘农业项目发展前景腾讯技术腾讯简介----币众筹收益权众筹为什么有吸引力什么是生态系统生态系统的我主要特征是什么?审计平台什么叫数据库审计系统?labelforandroid:labelfor是什么意思单元测试规范单元场景测试是如何进行的?
美国linux主机 金万维动态域名 主机测评网 lunarpages raksmart debian源 大容量存储 双线主机 中国电信测网速 服务器合租 香港新世界中心 国外视频网站有哪些 atom处理器 hostease 镇江高防服务器 亿库 accountsuspended 百度新闻源申请 asp介绍 nic 更多