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.百度蜘蛛,怎样勾引蜘蛛到你站等等。
蓝速数据金秋上云季2G58/年怎么样?蓝速数据物理机拼团0元购劲爆?蓝速数据服务器秒杀爆产品好不好?蓝速数据是广州五联科技信息有限公司旗下品牌云计算平台、采用国内首选Zkeys公有云建设多种开通方式、具有IDC、ISP从业资格证IDC运营商新老用户值得信赖的商家。我司主要从事内地的枣庄、宿迁、深圳、绍兴、成都(市、县)。待开放地区:北京、广州、十堰、西安、镇江(市、县)。等地区数据中心业务,均KV...
天上云服务器怎么样?天上云是国人商家,成都天上云网络科技有限公司,专注于香港、美国海外云服务器的产品,有多年的运维维护经验。世界这么大 靠谱最重,我们7*24H为您提供服务,贴心售后服务,安心、省事儿、稳定、靠谱。目前,天上云香港大带宽物理机服务器572元;20Mbps带宽!三网CN2线路,香港沙田数据中心!点击进入:天上云官方网站地址香港沙田数据中心!线路说明 :去程中国电信CN2 +中国联通+...
六一云 成立于2018年,归属于西安六一网络科技有限公司,是一家国内正规持有IDC ISP CDN IRCS电信经营许可证书的老牌商家。大陆持证公司受大陆各部门监管不好用支持退款退现,再也不怕被割韭菜了!主要业务有:国内高防云,美国高防云,美国cera大带宽,香港CTG,香港沙田CN2,海外站群服务,物理机,宿母鸡等,另外也诚招代理欢迎咨询。官网www.61cloud.net最新直销劲爆...
爬虫论坛为你推荐
企鹅医生用企鹅医生咨询医生用花钱么?病历单我想请两天病假,病例单怎么写企业资源管理系统企业内部管理系统有哪些知识分享平台微信看到一些文章,可以分享到知识付费的平台吗?怎么操作呀?jstz请帮忙翻译腾讯贴吧QQ应该有贴吧的吧?那怎样进QQ贴吧?在(=@__@=)哪里?移动硬盘文件或目录损坏且无法读取移动硬盘提示文件或目录损坏且无法读取!红牛下架红牛 为什么全国下架网站推广软件破解版免费的网站推广软件,破解版视频服务器软件服务器方面软件那个网站最多,急啊!!!!如果带教程的更好,嘿嘿……
域名解析 申请域名 工信部域名备案查询 如何查询ip地址 主机 godaddy优惠券 网站挂马检测工具 新天域互联 赞助 cn3 网通服务器托管 免费phpmysql空间 绍兴电信 空间购买 免费外链相册 网页提速 国外网页代理 谷歌搜索打不开 重庆联通服务器托管 密钥索引 更多