一种网页内容有分页的抓取方法技术

技术编号:19009268 阅读:60 留言:0更新日期:2018-09-22 09:07
本发明专利技术涉及JAVA平台技术领域,特别涉及一种网页内容有分页的抓取方法。本发明专利技术的方法是首先查看当前待抓取页的URL是否带有分页数,如果没有,用开发人员工具进行解析,找出其查询参数与请求的URL,根据它们拼接出有分页数的URL;然后使用网络工具对其加载,获取Html信息内容,使用爬虫工具从中提取出总页数、当前页数等信息;接着以总页数为结束值,当前页数为开始值,循环,在循环体中使用循环变量替换掉URL中的分页数,生成每个分页的URL;最后使用网络工具对分页URL加载,使用爬虫工具对所需内容进行提取,把获得的数据保存到数据库中。本发明专利技术解决了有分页的网页其没展示的分页部分不能直接抓取的问题。

A crawling method for web page content paging

The invention relates to the technical field of the JAVA platform, in particular to a page grabbing method for web page content. The method of the present invention is to check whether the URLs of the pages to be crawled currently have the number of pages. If not, the URLs of the pages to be crawled are parsed with the developer's tools to find out the query parameters and the URLs of the requests, and then the URLs with the number of pages are spliced according to them. It extracts the total page number, the current page number and other information; then it uses the total page number as the end value, the current page number as the start value, loops, replaces the number of pages in the URL with the loop variable in the loop body, and generates the URL of each page; finally, it loads the page URL with the network tool, and extracts the required content with the crawler tool. The saved data is saved to the database. The invention solves the problem that the pagination part of a pagination web page can not be directly grabbed.

【技术实现步骤摘要】
一种网页内容有分页的抓取方法
本专利技术涉及JAVA平台
,特别涉及一种网页内容有分页的抓取方法。
技术介绍
在进行网页情报信息抓取时,经常会碰到很多待抓取的内容是有分页的,我们所能抓取的只有当前看到的那一页的数据,其它分页的数据是需要点击分页按钮才能加载出来的。假如分页有几千上万页,如果单靠手工点击按钮加载分页内容来进行抓取,这种行为是不可取的。为了解决这些问题,需要实现一种能模拟点击分页按钮来获取所有分页的URL以便抓取没有加载部分信息的功能。
技术实现思路
本专利技术解决的技术问题在于提供一种网页内容有分页的抓取方法;解决了有分页的网页其没展示的分页部分不能直接抓取的问题。本专利技术解决上述技术问题的技术方案是:首先查看当前待抓取页的URL是否带有分页数,如果没有,用开发人员工具进行解析,找出其查询参数与请求的URL,根据它们拼接出有分页数的URL;然后使用网络工具对其加载,获取Html信息内容,使用爬虫工具从中提取出总页数、当前页数等信息;接着以总页数为结束值,当前页数为开始值,循环,在循环体中使用循环变量替换掉URL中的分页数,生成每个分页的URL;最后使用网络工具对分页URL加载,使用爬虫工具对所需内容进行提取,把获得的数据保存到数据库中。从而解决了有分页的网页其没展示的分页部分不能直接抓取的问题。所述的方法具体包括如下步骤:步骤一、查看当前待抓取页的URL是否带有分页数,如果没有,用开发人员工具进行解析,找出其查询参数与请求的URL,根据它们拼接出有分页数的URL;步骤二、使用网络工具对其加载,获取Html信息内容;步骤三、使用爬虫工具从中提取出总页数、当前页数等信息;步骤四、以总页数为结束值,当前页数为开始值,循环,在循环体中使用循环变量替换掉URL中的分页数,生成每个分页的URL;步骤五、使用网络工具对分页URL加载,获取分页Html信息;步骤六、使用爬虫工具对所需内容进行提取,把获得的数据保存到数据库中。本专利技术的有益效果:首先查看当前待抓取页的URL是否带有分页数,如果没有,用开发人员工具进行解析,找出其查询参数与请求的URL,根据它们拼接出有分页数的URL;然后使用网络工具对其加载,获取Html信息内容,使用爬虫工具从中提取出总页数、当前页数等信息;接着以总页数为结束值,当前页数为开始值,循环,在循环体中使用循环变量替换掉URL中的分页数,生成每个分页的URL;最后使用网络工具对分页URL加载,使用爬虫工具对所需内容进行提取,把获得的数据保存到数据库中,从而达到把有分页的网页的内容全部抓取的目的。有效解决了有分页的网页其没展示的分页部分不能直接抓取的问题。附图说明下面结合附图对本专利技术进一步说明:图1为本专利技术的流程图。具体实施方式如图1所示,本专利技术采用如下步骤:步骤一、查看当前待抓取页的URL是否带有分页数,如果没有,用开发人员工具进行解析,找出其查询参数与请求的URL,根据它们拼接出有分页数的URL;1)通过360或谷歌等主流浏览器打开要抓取的网页;2)打开开发人员工具;3)找到Network选项卡中的Headers子选项卡卡;4)在General中找到请求的主URL及请求方法;5)获得RequestHeaders请求头部分的内容;6)找到QueryStringParameters参数内容,与上同的主URL进行拼装,生成一个带分页数URL;步骤二、使用网络工具对其加载,获取Html信息内容;//1)根据请求头信息初始化网络工具publicstaticWebClientgetWebClient(){//初始化浏览器对象WebClientwebClient=newWebClient(BrowserVersion.getDefault());webClient.getOptions().setUseInsecureSSL(true);webClient.getOptions().setJavaScriptEnabled(false);webClient.getOptions().setCssEnabled(false);webClient.getOptions().setThrowExceptionOnScriptError(false);webClient.getOptions().setTimeout(100000);//设置连接超时时间,这里是10S。如果为0,则无限期等待webClient.getOptions().setDoNotTrackEnabled(false);returnwebClient;}//2)使用网络工具进行加载,获得htmlStringmainUrl=http://www.**.com/title;HtmlPagemainPage=getWebClient().getPage(mainUrl);HtmlElementbody=mainPage.getBody();StringmainHtml=mainPage.asXml();步骤三、使用爬虫工具从中提取出总页数、当前页数等信息;//使用爬虫解析Documentdoc=Jsoup.parse(mainHtml);//当前页ElementcurrentElement=document.selectFirst(".current");IntegercurrentPage=Integer.parse(currentElement.text());//总页数ElementtotalElement=document.selectFirst(".total");IntegertotalPage=Integer.parse(totalElement.text());步骤四、以总页数为结束值,当前页数为开始值,循环,在循环体中使用循环变量替换掉URL中的分页数,生成每个分页的URL;//组装分页UrlStringpageUrl=mainUrl+“page=”;for(inti=currentPage;i<=totalPage;i++){pageUrl=pageUrl+i;}步骤五、使用网络工具对分页URL加载,获取分页Html信息;HtmlPagehtmlPage=getWebClient().getPage(pageUrl);StringpageXml=htmlPage.asXml();步骤六、使用爬虫工具对所需内容进行提取,把获得的数据保存到数据库中;//解析分页urlDocumentdoc=Jsoup.parse(pageXml);//获取所有的内容ElementspElements=doc.select("p[align=left]");for(Elemente:pElements){//获得全a标签信息Elementslinks=e.getElementsByTag("a");//对链接标签遍历for(Elementlink:links){StringlinkHref=link.attr("href");StringlinkText=link.text();//保存到数据库中InfoListinfo=newInfoList();info.setTitle(linkText);info.setUr本文档来自技高网...
一种网页内容有分页的抓取方法

【技术保护点】
1.一种网页内容有分页的抓取方法,其特征在于:首先查看当前待抓取页的URL是否带有分页数,如果没有,用开发人员工具进行解析,找出其查询参数与请求的URL,根据它们拼接出有分页数的URL;然后使用网络工具对其加载,获取Html信息内容,使用爬虫工具从中提取出总页数、当前页数等信息;接着以总页数为结束值,当前页数为开始值,循环,在循环体中使用循环变量替换掉URL中的分页数,生成每个分页的URL;最后使用网络工具对分页URL加载,使用爬虫工具对所需内容进行提取,把获得的数据保存到数据库中;从而解决了有分页的网页其没展示的分页部分不能直接抓取的问题。

【技术特征摘要】
1.一种网页内容有分页的抓取方法,其特征在于:首先查看当前待抓取页的URL是否带有分页数,如果没有,用开发人员工具进行解析,找出其查询参数与请求的URL,根据它们拼接出有分页数的URL;然后使用网络工具对其加载,获取Html信息内容,使用爬虫工具从中提取出总页数、当前页数等信息;接着以总页数为结束值,当前页数为开始值,循环,在循环体中使用循环变量替换掉URL中的分页数,生成每个分页的URL;最后使用网络工具对分页URL加载,使用爬虫工具对所需内容进行提取,把获得的数据保存到数据库中;从而解决了有分页的网页其没展示的分页部分不能直接抓取的问题。2.根据权利要求1所述的基于JAVA平台的一种...

【专利技术属性】
技术研发人员:陈林张来卿庞严冬
申请(专利权)人:珠海横琴盛达兆业科技投资有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1