java怎么写爬虫
写爬虫你一定要关注以下5个方面:
1.如何抽象整个互联网
抽象为一个无向图,网页为节点,网页中的链接为有向边。
2.抓取算法
采用优先队列调度,区别于单纯的BFS,对于每个网页设定一定的抓取权重,优先抓取权重较高的网页。对于权重的设定,考虑的因素有:
1. 是否属于一个比较热门的网站 2. 链接长度 3. link到该网页的网页的权重 4. 该网页被指向的次数 等等。
进一步考虑,对于热门的网站,不能无限制的抓取,所以需要进行二级调度。首先调度抓取哪个网站,然后选中了要抓取的网站之后,调度在该网站中抓取哪些网页。这样做的好处是,非常礼貌的对单个网站的抓取有一定的限制,也给其他网站的网页抓取一些机会。
3.网络模型
分别考虑单机抓取和分布式抓取的情况。对于Windows的单机,可以使用IOCP完成端口进行异步抓取,该种网络访问的方式可以最大程度的利用闲散资源。因为网络访问是需要等待的,如果简单的同时开多个线程,计算机用于线程间切换的耗费会非常大,这种用于处理抓取结果的时间就会非常少。IOCP可以做到使用几个线程就完成几十个线程同步抓取的效果。对于多机的抓取,需要考虑机器的分布,如抓取亚洲的站点,则用在亚洲范围内的计算机等等。
4.实时性
新闻网页的抓取一般来说是利用单独的爬虫来完成。新闻网页抓取的爬虫的权重设置与普通爬虫会有所区别。首先需要进行新闻源的筛选,这里有两种方式,一种是人工设置新闻源,如新浪首页,第二种方式是通过机器学习的方法。新闻源可以定义链接数非常多,链接内容经常变化的网页。从新闻源网页出发往下抓取给定层级限制的网页所得到,再根据网页中的时间戳信息判断,就可以加入新闻网页。
5.网页更新
网页如果被抓下来以后,有的网页会持续变化,有的不会。这里就需要对网页的抓取设置一些生命力信息。当一个新的网页链接被发现以后,他的生命力时间戳信息应该是被发现的时间,表示马上需要被抓取,当一个网页被抓取之后,他的生命力时间戳信息可以被设置为x分钟以后,那么,等到x分钟以后,这个网页就可以根据这个时间戳来判断出,他需要被马上再抓取一次了。一个网页被第二次抓取以后,需要和之前的内容进行对比,如果内容一致,则延长下一次抓取的时间,如设为2x分钟后再抓取,直到达到一个限制长度如半年或者三个月(这个数值取决于你爬虫的能力)。如果被更新了,则需要缩短时间,如,x/2分钟之后再抓取法:
1.
下载选择并使用网络工具包;
2.
提交请求,使用get/post的方式提交请求;
3.
使用代理IP,对目标要求的各种必要参数源进行分析
猜你喜欢内容
-
药房装修有什么要求吗
开药店装修时需要注意以下要求:特色突出:店面设计应有明显特色,主题鲜明,以吸引顾客和路人的注意。...
-
装修镜子怎么买好看
购买装修镜子时,可以参考以下步骤和建议:根据镜子的使用场景选择合适的类型,例如浴室、卧室、客厅或...
-
藏式装修木板怎么选好
选择藏式装修木板时,可以参考以下要点:质量好的板材表面应光滑平整,无缺陷。侧面看板芯厚度是否均匀...
-
卧室太小怎么装修实例
针对卧室太小的情况,以下是一些实用的装修实例和建议:案例:面积约6.5平方米,采用定制榻榻米床的设计...
-
复式装修怎么除甲醛
复式装修后除甲醛可以采取以下几种方法:活性炭和竹炭具有较强的吸附能力,可以放置在室内各个角落,如...
-
淘宝店铺装修用什么颜色
淘宝店铺装修时,选择合适的颜色可以显著提升店铺的吸引力和用户体验。以下是一些推荐的颜色及其适用场...
-
院里有柱子怎么装修
针对院子里有柱子的装修问题,以下是一些建议:隐藏式设计:将柱子包装成衣柜或其他功能型房间,增加收...
-
大白墙怎么装修耐脏
要使大白墙更耐脏,可以采取以下几种装修策略:根据房间的光线情况选择色调。自然光充足的房间适合冷白...
-
开养生馆注意什么装修
开养生馆时,装修是一个非常重要的环节,它不仅关系到顾客的第一印象,还直接影响到养生馆的整体氛围和...
-
法院野蛮装修怎么处理
面对野蛮装修问题,可以采取以下几种处理方式:发生纠纷时,首先尝试与对方进行沟通协商,寻求双方都能...