您的位置:首页 > Web前端 > JavaScript

如何抓取Js动态生成数据且以滚动页面方式分页的网页

2016-02-29 00:00 926 查看
当我们在进行数据抓取的时候,如果目标网站是以Js的方式动态生成数据且以滚动页面的方式进行分页,那么我们该如何抓取呢?如类似今日头条这样的网站:http://toutiao.com/我们可以使用Selenium来搞定这件事情。Selenium的设计目的虽然是用于Web应用程序的自动化测试,但是却非常适合用来做数据抓取,可以非常简单地绕过网站的反爬虫限制,因为Selenium直接运行在浏览器中,就像真正的用户在操作一样。使用Selenium,我们不但可以抓取Js动态生成数据的网页,而且可以抓取以滚动页面方式分页的网页。首先,我们使用maven引入Selenium依赖:?
12345<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>2.47.1</version></dependency>
接下来就可以写代码抓取了:?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657importorg.openqa.selenium.By;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.firefox.FirefoxDriver;importjava.util.List;importjava.util.Random;/***如何抓取Js动态生成数据且以滚动页面方式分页的网页*以抓取今日头条为例说明:http://toutiao.com/*Createdbyyscon10/13/15.*/publicclassToutiao{publicstaticvoidmain(String[]args)throwsException{//等待数据加载的时间//为了防止服务器封锁,这里的时间要模拟人的行为,随机且不能太短longwaitLoadBaseTime=3000;intwaitLoadRandomTime=3000;Randomrandom=newRandom(System.currentTimeMillis());//火狐浏览器WebDriverdriver=newFirefoxDriver();//要抓取的网页driver.get("http://toutiao.com/");//等待页面动态加载完毕Thread.sleep(waitLoadBaseTime+random.nextInt(waitLoadRandomTime));//要加载多少页数据intpages=5;for(inti=0;i<pages;i++){//滚动加载下一页driver.findElement(By.className("loadmore")).click();//等待页面动态加载完毕Thread.sleep(waitLoadBaseTime+random.nextInt(waitLoadRandomTime));}//输出内容//找到标题元素List<WebElement>elements=driver.findElements(By.className("title"));intj=1;for(inti=0;i<elements.size();i++){try{WebElementelement=elements.get(i).findElement(By.tagName("a"));//输出标题System.out.println((j++)+"、"+element.getText()+""+element.getAttribute("href"));}catch(Exceptione){System.out.println("ignore"+elements.get(i).getText()+"because"+e.getMessage());}}//关闭浏览器driver.close();}}
代码也可以从我的开源项目HtmlExtractor中获取。这里我们共抓取了6页,每页20条新闻,共120条新闻,代码运行结果如下:?
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201、马航MH17空难调查最终报告称客机系被山毛榉导弹击落'target='_blank'>http://toutiao.com/group/6205086449652105474/[/code]2、杭州惊现面食一条街,网友爆料称卖米饭会被罚款5万'target='_blank'>http://toutiao.com/group/6204736856495374594/[/code]3、人体暴露在太空中,能存活多久?'target='_blank'>http://toutiao.com/group/6204940493778190594/[/code]4、这些事,被习近平婉拒了'target='_blank'>http://toutiao.com/group/6205092471197253890/[/code]5、哥哥偷偷打开自闭症妹妹的电脑游戏,震惊了'target='_blank'>http://toutiao.com/group/6205061130820698370/[/code]6、38888!马云拍下今年双11生鲜第一大单'target='_blank'>http://toutiao.com/group/6205104351076221185/[/code]7、浙江省检察院依法对洪航勇决定逮捕'target='_blank'>http://toutiao.com/group/6205034235734163714/[/code]8、“啪”被拍到了,咦我好像没违章啊'target='_blank'>http://toutiao.com/group/6204273515422548226/[/code]9、会所偷拍、海外买岛、倒卖油田比周滨还牛的贪二代在这呢'target='_blank'>http://toutiao.com/group/6205083404519719169/[/code]10、10个无厘头出现在太空中的漂浮物'target='_blank'>http://toutiao.com/group/6204711297144897793/[/code]11、我们未来的食物'target='_blank'>http://toutiao.com/group/6203987844262281474/[/code]12、向城市毒瘤动刀住房城乡建设部推广浙江治违样板(上)'target='_blank'>http://toutiao.com/group/6205122991233483010/[/code]13、一粒铀原子放出的能量可移动一沙子?'target='_blank'>http://toutiao.com/group/6204754599004422402/[/code]14、你的眼睛骗了你,你的大脑也骗了你'target='_blank'>http://toutiao.com/group/6202141287498137858/[/code]15、看这小伙儿在沙滩上抓什么呢?真没想到,又大又肥'target='_blank'>http://toutiao.com/group/6203109871341257217/[/code]16、狗狗在沙滩上受够被小女孩不停踢打玩闹,一招让她知道厉害'target='_blank'>http://toutiao.com/group/6204009873150411009/[/code]17、餐厅里监控拍到的一幕'target='_blank'>http://toutiao.com/group/6204948778769613313/[/code]18、中国电信业这点事:提供最好服务却被骂垄断'target='_blank'>http://toutiao.com/group/6204570190289797378/[/code]19、一只成精的色狗,不知道最后那美女的衣服要回来没'target='_blank'>http://toutiao.com/group/6203831228279718401/[/code]20、iPhone6s真有传说中的16种版本?我们来辟下谣'target='_blank'>http://toutiao.com/group/6204322503820214530/[/code]21、明星官员于幼军为什么去中山大学教书?'target='_blank'>http://toutiao.com/group/6205060666964541698/[/code]22、周立波被四川洗碗妹调侃,狼狈不堪!'target='_blank'>http://toutiao.com/group/6203580947650249217/[/code]23、杭州1姑娘美发店去黑头,事后店方竟要求按颗收钱'target='_blank'>http://toutiao.com/group/6205065125139563010/[/code]24、风情万种波涛汹涌,但7万人买票却为看她血腥打架、残暴秒杀!'target='_blank'>http://toutiao.com/group/6204956612790223106/[/code]25、联合国提升中国会费,究竟有没道理?'target='_blank'>http://toutiao.com/group/6204539365308432642/[/code]26、全世界令司机最恐惧的5条道路,最后一个还是人开的么,吓尿了'target='_blank'>http://toutiao.com/group/6202673330866471170/[/code]27、麻醉觉醒:手术刀下的恐怖体验'target='_blank'>http://toutiao.com/group/6204576787359269122/[/code]28、武汉一高校规定中晚餐消费超6.2元取消贫困资格'target='_blank'>http://toutiao.com/group/6204872014819852546/[/code]29、越南留学生写汉字犹如印刷体网友汗颜'target='_blank'>http://toutiao.com/group/6204569047826432257/[/code]30、山东一年轻少妇,火了'target='_blank'>http://toutiao.com/group/6202531725793968641/[/code]31、喝茶真的会缺钙吗?'target='_blank'>http://toutiao.com/group/6204943852444385538/[/code]32、神秘商人徐京华在京被查'target='_blank'>http://toutiao.com/group/6205103135601295618/[/code]33、杭州市市管领导干部任前公示通告'target='_blank'>http://toutiao.com/group/6205055568838131970/[/code]34、大胸美女试衣间的诱惑,把持不住啊'target='_blank'>http://toutiao.com/group/6204977924416750081/[/code]35、亲人出车祸医生新娘放弃婚礼救人'target='_blank'>http://toutiao.com/group/6204958201928335618/[/code]36、辣妹以为车内没人拉下裙子,结果尴尬了!'target='_blank'>http://toutiao.com/group/6202696188683550977/[/code]37、韩国男女主角拍摄激情戏,最后直接撕起来了!'target='_blank'>http://toutiao.com/group/6202845988550771202/[/code]38、忘带驾照=无证驾驶?其实并不是,这些情况都不算!'target='_blank'>http://toutiao.com/group/6204937667688743169/[/code]39、别做声,火车上偷偷拍下来的...'target='_blank'>http://toutiao.com/group/6203301087581766146/[/code]40、她年仅11岁,全场观众为她唱的这首《天亮了》而彻底疯狂'target='_blank'>http://toutiao.com/group/6203621724069184002/[/code]41、前诺贝尔化学奖得主无钱治病离世'target='_blank'>http://toutiao.com/group/6205032693841608961/[/code]42、《兰亭序》展出一个月!是王羲之的真迹吗?|故宫镇馆之宝'target='_blank'>http://toutiao.com/group/6204938492323021057/[/code]43、晚清牛人的法国妻子与英国情人差点决斗,他非但不调停反而看热闹'target='_blank'>http://toutiao.com/group/6204966250697523458/[/code]44、与男友共处一晚竟然不碰我还结婚吗'target='_blank'>http://toutiao.com/group/6204758369984299266/[/code]45、哪种女人出轨后比男人更疯狂?'target='_blank'>http://toutiao.com/group/6205037405421961473/[/code]46、印度被坑800万美元一辆买韩国自行炮:解放军和巴铁都要笑了'target='_blank'>http://toutiao.com/group/6205013418028171521/[/code]47、中国国防工业惊人能力:一周可生产1万根炮管每月下水1艘护卫舰'target='_blank'>http://toutiao.com/group/6205033668799480065/[/code]48、四川小伙发明自动洗头机:发廊妹要失业了!不比日本发明洗头机差'target='_blank'>http://toutiao.com/group/6204935451486306817/[/code]49、脸红心跳!美女醉酒悲剧傻缺集锦'target='_blank'>http://toutiao.com/group/6204972869240766722/[/code]50、38位现役上将都是哪里人?'target='_blank'>http://toutiao.com/group/6204935704891015425/[/code]51、歼10坠毁飞行员跳伞后步行半小时借电话求救'target='_blank'>http://toutiao.com/group/6204723396066558210/[/code]52、扒扒10大男星喝醉酒后干的蠢事'target='_blank'>http://toutiao.com/group/6204258959777300738/[/code]53、小苹果落伍了,这才是新神曲!'target='_blank'>http://toutiao.com/group/6203403900508061953/[/code]54、全球最恐怖的组织ISIS的首脑是何方神圣'target='_blank'>http://toutiao.com/group/6204709742365147394/[/code]55、牛人用5800枚镜子做成的激光,竟可以击穿铁板!'target='_blank'>http://toutiao.com/group/6202740688838689026/[/code]56、东邪黄药师曲子杀人?来看这位牛人唱首歌惊散十万大军!'target='_blank'>http://toutiao.com/group/6204784307294060801/[/code]57、我的已婚处女朋友'target='_blank'>http://toutiao.com/group/6204998329807618305/[/code]58、哪位开国中将,救过蒋介石的命,在国民党内潜伏了22年!'target='_blank'>http://toutiao.com/group/6204988120670732545/[/code]59、大闸蟹该蒸还是该煮?让我告诉你!'target='_blank'>http://toutiao.com/group/6203789618635424001/[/code]60、果敢,至今不肯屈服的明朝故土'target='_blank'>http://toutiao.com/group/6204794460595699970/[/code]61、从耻辱割地喂狼到对方俯首称臣,此煞星让大宋续命好多年!'target='_blank'>http://toutiao.com/group/6204784663776182530/[/code]62、璎珞的前世今生'target='_blank'>http://toutiao.com/group/6205030889954918658/[/code]63、不会造血只知道输血:日本的航空工业到底水平如何?'target='_blank'>http://toutiao.com/group/6205016158216782082/[/code]64、俄军地面鏖战叙利亚?看普京如何破解这一世界难题!'target='_blank'>http://toutiao.com/group/6205026513383227649/[/code]65、实拍:中印两军边境对峙场面!解放军很霸气!'target='_blank'>http://toutiao.com/group/6203141705638674945/[/code]66、震惊|爷爷出门买个米,大浒东苑3岁娃从自家16楼坠下,结果'target='_blank'>http://toutiao.com/group/6204670314566025474/[/code]67、拿了诺奖,重庆青蒿素之乡特别失落'target='_blank'>http://toutiao.com/group/6204086748768583937/[/code]68、为人妻!见光死!当年那些火遍网络的校花们,如今都在干啥?'target='_blank'>http://toutiao.com/group/6204989078449520897/[/code]69、破产千万富翁逆天演唱《从头再来》,评委都哭了'target='_blank'>http://toutiao.com/group/6202875739789214209/[/code]70、不只有性能出色899元起高关注手机推荐'target='_blank'>http://toutiao.com/group/6204604524257100034/[/code]71、洗衣粉真能炸油条?这样的都市传说你信过没有'target='_blank'>http://toutiao.com/group/6204058659681861890/[/code]72、三十年前半夜听到亲人听“敌台”,你知道敌台说什么吗?'target='_blank'>http://toutiao.com/group/6204570594015920385/[/code]73、大象交配-最新野生动物目击'target='_blank'>http://toutiao.com/group/6204930211626058241/[/code]74、“非常重要的刘鹤”作了哪几次重要表态?'target='_blank'>http://toutiao.com/group/6205092746074849538/[/code]75、胸大未必真的好,那些大波妹子生活中会遇到的尴尬囧事!'target='_blank'>http://toutiao.com/group/6203810393395396866/[/code]76、富三代驾驶兰博基尼专泡名花有主的妞'target='_blank'>http://toutiao.com/group/6203838594150154498/[/code]77、摄影师拍摄整容过程中的韩国女性'target='_blank'>http://toutiao.com/group/6204669627370062081/[/code]78、万一以后再也看不到了这样的10分电影怎么办'target='_blank'>http://toutiao.com/group/6204958352252338433/[/code]79、我家的阳台都用来晾衣服看了人家的阳台委屈的快哭了'target='_blank'>http://toutiao.com/group/6204655668726890754/[/code]80、陈金彪任浙江省委秘书长:半年内两度履新,曾接受冰桶挑战'target='_blank'>http://toutiao.com/group/6204911524224368898/[/code]81、中石油原副经理王永春一审获刑20年'target='_blank'>http://toutiao.com/group/6205072671396741634/[/code]82、没有逛过这8条街,杭州算是白来了!'target='_blank'>http://toutiao.com/group/6204562364857254145/[/code]83、用铅粉美白?古人爱美多误区'target='_blank'>http://toutiao.com/group/6204757085789880577/[/code]84、此诸侯竟敢大战九五至尊的周天子,战斗结果让人大吃一惊!'target='_blank'>http://toutiao.com/group/6204784006644171010/[/code]85、国务院批复同意沈阳市政府驻地搬迁,此举曾获中央巡视组肯定'target='_blank'>http://toutiao.com/group/6205058145818034433/[/code]86、视频演示:更易怀孕的同房姿势!有讲究哦!'target='_blank'>http://toutiao.com/group/6202919359477973505/[/code]87、17分钟,我哭了1个小时,别心疼流量,都看看吧'target='_blank'>http://toutiao.com/group/6202885235963396609/[/code]88、林子祥演唱会翻唱《海阔天空》,男声里面最温柔有力的版本,必听'target='_blank'>http://toutiao.com/group/6204565483004313858/[/code]89、仿佛李小龙附体,华人小伙球场KO黑人壮汉'target='_blank'>http://toutiao.com/group/6203501752747442689/[/code]90、开挂了!一个视频让你感受下,中国的乒乓球有多牛!全场起立鼓掌'target='_blank'>http://toutiao.com/group/6202531661369901314/[/code]91、浙江未来5年要新建40个以上机场'target='_blank'>http://toutiao.com/group/6204591373068943617/[/code]92、“阔太”李念浴室自拍放送!产后7月减56斤上围未缩水'target='_blank'>http://toutiao.com/group/6204806121431728386/[/code]93、台湾腔为什么这么娘|大象公会'target='_blank'>http://toutiao.com/group/6202158931222642946/[/code]94、iOS9再坑玩家苹果竟劝用户放弃存档卸载系统?'target='_blank'>http://toutiao.com/group/6204700151704682754/[/code]95、马云的传奇半生录:创业初期开会如传销'target='_blank'>http://toutiao.com/group/6204201729338081538/[/code]96、发改委一日再批六条铁路建设今年来已批投资破万亿'target='_blank'>http://toutiao.com/group/6204990225205428481/[/code]97、菲律宾南部发现疑似MH370客机残骸大马展开调查'target='_blank'>http://toutiao.com/group/6204563833737134338/[/code]98、三个风骚服务员让吃饭大哥乐疯了'target='_blank'>http://toutiao.com/group/6203644985613042178/[/code]99、为什么手脚冰凉的总是你?'target='_blank'>http://toutiao.com/group/6203427381094498562/[/code]100、英媒:习近平访英,白金汉宫午宴提议多宝鱼遭婉拒'target='_blank'>http://toutiao.com/group/6204624878106657026/[/code]101、基地组织叙利亚分支宣称对俄罗斯火箭袭击负责'target='_blank'>http://toutiao.com/group/6205069394336776706/[/code]102、琅琊榜权力斗争太幼稚,历史上儿子抢父亲皇位可以多残忍?'target='_blank'>http://toutiao.com/group/6205056152952783106/[/code]103、被劫持为人质的将军,何以赢得曹操最大的信任'target='_blank'>http://toutiao.com/group/6204905519859450114/[/code]104、中国明星片酬最新排行前十强,男女星第一名各是谁?你绝对想不到'target='_blank'>http://toutiao.com/group/6204563399945748738/[/code]105、男子杀情人放车中.开车接老婆'target='_blank'>http://toutiao.com/group/6204746850883207425/[/code]106、小偷入室盗得鸡血石却不识货价值几十万的石头被随手埋山里'target='_blank'>http://toutiao.com/group/6204849161299706113/[/code]107、郭德纲徒弟调侃国足引大帝暴怒:不喜欢但请尊重'target='_blank'>http://toutiao.com/group/6204642444523143425/[/code]108、香港商铺租金暴跌40%,名表店变成化妆品折扣店'target='_blank'>http://toutiao.com/group/6205057840875667713/[/code]109、韩国济州岛赌场诱中国赌客:50万换"三线女"陪两夜'target='_blank'>http://toutiao.com/group/6204745382003245313/[/code]110、掌握正确的止血知识,你就可以救人一命'target='_blank'>http://toutiao.com/group/6203952466615877890/[/code]111、LGD四连跪游戏主播失控怒砸电脑'target='_blank'>http://toutiao.com/group/6204601934390477057/[/code]112、宝宝快速钓鱼比捞的还快'target='_blank'>http://toutiao.com/group/6202929783362797826/[/code]113、首次曝光!用中国无人机一击命中恐怖分子营地,整个空军都沸腾了'target='_blank'>http://toutiao.com/group/6204974166322462978/[/code]114、西太平洋之鲨:歼-15真的是全盘山寨苏-33吗?'target='_blank'>http://toutiao.com/group/6204983469222002946/[/code]115、澳门博彩不景气赌王何鸿燊之子去俄罗斯开了个最大赌场'target='_blank'>http://toutiao.com/group/6205019589895553281/[/code]116、中国买家要在澳大利亚买下一个“浙江省”,惊动澳国防部'target='_blank'>http://toutiao.com/group/6204578848942637313/[/code]117、念错电影名不只是夏洛特烦恼'target='_blank'>http://toutiao.com/group/6204574184608497921/[/code]118、史上最好用的支架,一次解决苹果三件套'target='_blank'>http://toutiao.com/group/6204563550269669633/[/code]119、恒大球员超市即将开张?来年再签大牌会是谁'target='_blank'>http://toutiao.com/group/6204569893936136449/[/code]120、这个激励了10亿人!当你心情低落时,请看看这群鸭子!太...'target='_blank'>http://toutiao.com/group/6202880807851557378/[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: