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.百度蜘蛛,怎样勾引蜘蛛到你站等等。
diyvm怎么样?diyvm商家VPS主机均2GB内存起步,三个地区机房可选,使用优惠码后每月69元起;DiyVM独立服务器开设在香港沙田电信机房,CN2线路,5M带宽,自动化开通上架,最低499元/月,配置是L5630*2/16G内存/120G SSD硬盘。DiyVM是一家成立于2009年的国人主机商,提供的产品包括VPS主机、独立服务器租用等,产品数据中心包括中国香港、日本大阪和美国洛杉矶等,...
收到好多消息,让我聊一下阿里云国际版本,作为一个阿里云死忠粉,之前用的服务器都是阿里云国内版的VPS主机,对于现在火热的阿里云国际版,这段时间了解了下,觉得还是有很多部分可以聊的,毕竟,实名制的服务器规则导致国际版无需实名这一特点被无限放大。以前也写过几篇综合性的阿里云国际版vps的分析,其中有一点得到很多人的认同,那句是阿里云不管国内版还是国际版的IO读写速度实在不敢恭维,相对意义上的,如果在这...
官方网站:点击访问CDN客服QQ:123008公司名:贵州青辞赋文化传媒有限公司域名和IP被墙封了怎么办?用cloudsecre.com网站被攻击了怎么办?用cloudsecre.com问:黑客为什么要找网站来攻击?答:黑客需要找肉鸡。问:什么是肉鸡?答:被控的服务器和电脑主机就是肉鸡。问:肉鸡有什么作用?答:肉鸡的作用非常多,可以用来干违法的事情,通常的行为有:VPN拨号,流量P2P,攻击傀儡,...
爬虫论坛为你推荐
病历单我想单位请了病假,但是我没病。但单位要必须要病历单,我怎么办?到了医院我说我什么病?y码亚洲码男女尺码是多少?12种颜色油画的基本12种颜色是什么云计划云计划创富平台有谁了解啊 是骗人的吗?币众筹收益权众筹为什么有吸引力activitygroupTabHost ActivityGroup里面activity里的webview是不是不支持一些JS比如 alert?点心os现有的基于安卓深度优化的MUUI、点心OS、CM7、乐众ROM、乐蛙,这些哪个好?各自特点?给个排名。点心os什么是点心os?手机操作系统和手机区别么?一个是硬件一个是软件?听说炒的好火?什么是网络地址什么是IP地址?pmp格式PMP是什么格式的视频?
域名备案信息查询 最便宜虚拟主机 域名优惠码 sub-process 100x100头像 怎样建立邮箱 最好的免费空间 新家坡 双11秒杀 umax120 怎么建立邮箱 最漂亮的qq空间 yundun 789 电信网络测速器 德隆中文网 带宽测试 优惠服务器 ping值 suspended翻译 更多