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.百度蜘蛛,怎样勾引蜘蛛到你站等等。
819云互联是海外领先的互联网业务平台服务提供商。专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前平台研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务,拥有丰富的海外资源、香港,日本,美国等各国优质的IDC资源。官方网站:https://www.819yun.com香港特价物理服务器:地区CPU内存带宽...
hostyun新上了香港cloudie机房的香港原生IP的VPS,写的是默认接入200Mbps带宽(共享),基于KVM虚拟,纯SSD RAID10,三网直连,混合超售的CN2网络,商家对VPS的I/O有大致100MB/S的限制。由于是原生香港IP,所以这个VPS还是有一定的看头的,这里给大家弄个测评,数据仅供参考!9折优惠码:hostyun,循环优惠内存CPUSSD流量带宽价格购买1G1核10G3...
云基yunbase怎么样?云基成立于2020年,目前主要提供高防海内外独立服务器,欢迎各类追求稳定和高防优质线路的用户。业务可选:洛杉矶CN2-GIA+高防(默认500G高防)、洛杉矶CN2-GIA(默认带50Gbps防御)、香港CN2-GIA高防(双向CN2GIA专线,突发带宽支持,15G-20G DDoS防御,无视CC)。目前,美国洛杉矶CN2-GIA高防独立服务器,8核16G,最高500G ...
爬虫论坛为你推荐
应用雷达雷达是干什么用的?数据挖掘项目什么是数据挖掘?从事相关的工作有什么要求?币众筹收益权众筹为什么有吸引力什么是生态系统生态系统的我主要特征是什么?谷歌图片识别怎么通过一张GIF图在网上搜索出其出处(你们懂的...)以图搜图那个百度只找到了一模一样的..,有上传图片网站速度超快的上传图片网站点心os点心操作系统?免费下载空间怎么才能免费安装空间播放器embed函数c语言“sqrt函数”的用法是什么?pmp格式PMP的格式
中国万网域名注册 移动服务器租用 香港vps主机 中国域名交易中心 企业主机 google镜像 表单样式 directadmin 香港新世界电讯 火车票抢票攻略 debian源 windows2003iso 微信收钱 hdd 免费私人服务器 ebay注册 qq金券 supercache 97rb 第八届中美互联网论坛 更多