大数据课程爬虫_第1页
大数据课程爬虫_第2页
大数据课程爬虫_第3页
大数据课程爬虫_第4页
大数据课程爬虫_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

javaHTMLCSS选择IO流处理jsoup问题:请求并提取数据的自动化程序程序员:写爬虫程序,指定a去互联网上抓取数据的过程,就像一只蜘互联网:就像一张蜘蛛网,有好多的a组成的,网的的节点就是每一个(1).php可以做,号称是世界上最 的语言,但是多线程支持的不是太 聚焦爬虫,网络爬虫是一个自动提取网页的程序,它为搜索引擎从网上下URL开URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与无关的,保留有用的并nXPathXMLnXPathXMLn在XPath令、注释以及文档(根)节点。XML文档是被作为节点树来对待的。树的根被学习路径 /xpath/xpath-jsoupJavaHTMLURL地址、HTML\1.URL\2.DOMCSS\3.HTML回顾:一个文档的对象模型ElementsTextNodes其继承结构如下 继承Element继承Node.TextNode继ElementElement。他们还提供参考:StringStringhtml="<html><head><title>First+"<body><p>ParsedHTMLintoadoc.</p></body></html>";doc=Jsoup.parse(html);docdoc=Stringtitle=将HTML解析成一个 之后,就可以使用类似于DOM的方法进行操Elementcontent=doc.ge Elementcontent=doc.ge Elementslinks=content.ge for(Elementlink:links)StringlinkHref=link.attr("href");StringlinkText=link.text();}tagname:通 查找元#id:ID.class:class[attribute][attr][attr^=value],[attr$=value],[attr=value]:利用匹配属性值开头、结尾或包含*:这个符号将匹配所有元素L#id:元素el.class:元素+classel[attr]:元素ancestorchild:查找某个元素下子元素,比如:可以用.bodyp查找在"body"元素下的所有p元素parent>child:siblingA+siblingB:查找在A元前第一个同级元素siblingA~siblingX:查找A元前的同级X元elelel:多个选择器组合,查找匹配任一选择器的唯一元素,例如:div.masthead,div.logo:lt(n)::gt(n)::eq(n):n:has(seletor)::not(selector):attr(Stringkey)attr(Stringkey,Stringvalue)text()text(Stringvalue)html()data()获取数据内容(例如:script和stylejsoupelementsCSS(jquery)的选择器语法,来实现非常强Element.select(Stringselector)packagepackageimportimportimport;importimport*作者:*创建日期:2019325版本号:public ouppublicstaticvoidmain(String[]args)throws//////从String字符串解析html/////////////////////////////////////////Stringhtml="<html>"++"<title>First+++"<p>ParsedHTMLintoa++doc=//////从url中获取html//从url地址获取一个= Stringtitle //通过idElementelements ElementselementsByTag= for(Elemente:elementsByTag){Stringurl=e.attr("href");}System.out.println("title="+//////通过选择器获取html中的元素///////////////////////////////////////////StringstrHtml="<p>an<ahref='ht '><b><pclass='abc'>测试//anxxxx//pHtmlJsoup.parse(strHtml解析html//查找第一个a //获取所有的Elementfirst=Stringtext=pHtml.body().text();System.out.println("文本信息:text);//获 地址attr获取属性,或者给属性赋//获 StringurlText=first.text(); 内容:urlText);////通过class样式获取某节点pHtml.select("#p1");//id选择器}}5、URLConnection 和写入

设置参数和一般请求属 纵

方法实现与对象的实际连接对象变得可用。可 头字段 对象的内容StringStringregex"http://[\\w+\\.?/?]+\\.[A-Za-z]+urlurlcHttp是ApacheJakartaCommon下的子项目,可以用来提供高效的、HTTP协议的版本和建议Http相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),Http请求变得容易,而且也方便了开发人员测试接口(Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握Http是很重要的必修内容,掌握Http后,相信对于Http协议的了解会更加深入。 7、webMagic请查看中文: packageimportimportimport;importimportimportimportimportimport作者:版本号:publicclassDemo1implementsPageProcessor1.privateSitesite=publicSitegetSite()return}publicvoidprocess(Pagepage)//processhtmlSelectablediv1=//cssSelectablestablepage.getHtml().$("#post_list.post_item.post_item_bodyh3//linksSelectablelinks=Selectablexpath=Selectablexpath2=per']/ul/li/");//divdoc=ElementelementById= }publicstaticvoidmain(String[]Spider.Spider.create(new}} webmagicxpathhtmljsouphtmlpackagepackageimportimport;importimportimportimportimportimport类描述:jsoup作者:版本号:publicclassDemo2implementsPageProcessorprivateSitesite=intcount=0;publicSitegetSite()return}publicvoidprocess(Pagepage) 一级页面 Stringurl1=page.getUrl().get();if(url1.contains(".html"))//Stringhtml=page.getHtml().xpath("html").get();doc=Jsoup.parse(html);Stringtext=if(text==null)text=}System.out.println("标题}elseStringhtml=page.getHtml().xpath("html").get();doc=Jsoup.parse(html);Elementslinksdoc.select("#post_listpost_itempost_item_bodyh3a");//cssfor(Elementlink:links){Stringurl=link.attr("href");} Elementlast=doc.select("#paging_block.pagera").last();StringlastPageUrl=last.attr("href");}/*for(inti=0;i<200;i++){StringurlPage="/sitehome/p/";//1.addTargetRequest(urlPageicount次数:}publicstaticvoidmain(String[]args)}} Doc.select(“p[class=t1]spana”).text(); Doc.select(“span[class=t2]a”).text();packagepackageimportimport;importimportimportimportimportimportimport*作者:版本号:publicclassProcess51JobimplementsPageProcessorSitesite=Site.me().setRetryTimes(1).setSleepTime(3000);publicSitegetSite()return}publicvoidprocess(Pagepage)StringcruUrl=booleanflag /beijing/")) ,岗位描dom=Jsoup.parse(page.getHtml().get());Stringjob=dom.select("div[class=tHeaderdiv[class=in] ]page.putField("job",}//div,id=resultListdivStringhtml=//jsoupdoc=//doc50urldivElementsdivsdoc.select("div[class=el]");for(Elementdiv:divs){ ,岗位描Stringjob=div.select("p[class=t1]span Stringurl=div.select("p[class=t1]spanpage.putField("job",}StringpageUrl=page.getHtml().$("div.p_in>ul>li:nth-last-child(1)>a").links().toString();}publicstaticvoidmain(String[]args){Spider.create(newProcess51Job())//.addPipeline(newMyPipeLine())//.addPipeline(new.addPipeline(new}} publicclassFileDownPipelineimplementsPipeline{privatestaticStringbaseDir="C:\\webmagic\\pic1\\";publicvoidprocess(ResultItemsresultItems,Tasktask)//System.out.println(resultItems.getRequest().getUrl());if(resultItems==null){}Objects=resultItems.get("img");if(s==null){}Stringu=resultItems.get("img").toString();URLurl=String[]files=Stringname=files[files.length-tryurl=newDataInputStreamdataInputStream=newDataInputStream(url.openStream());FileOutputStreamfileOutputStream=newFileOutputStream(newFile(baseDir+b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论