网站源码分享提取 网站源码 免费下载

各位老铁们,大家好,今天由我来为大家分享网站源码分享提取,以及免费下载的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

前言

网上一搜&34;,一般就会出现以下这几款:ApacheNutchWebMagicWebCollectorHeritrix3Selenium

这些框架有哪些优缺点?

-Nutch

支持分布式抓取,并有Hadoop支持,可以进行多机分布抓取,存储和索引。另外很吸引人的一点在于,它提供了一种插件框架,使得其对各种网页内容的解析、各种数据的采集、查询、集群、过滤等功能能够方便的进行扩展,正是由于有此框架,使得Nutch的插件开发非常容易,第三方的插件也层出不穷,极大的增强了Nutch的功能和声誉。

缺点:定制能力较弱、同时社区活跃度较低,网上的资料大多都是几年前的资料。

-WebMagic

简单的API,可快速上手模块化的结构,可轻松扩展提供多线程和分布式支持缺点:现在有部分主流网站通过js渲染页面,不支持JS页面抓取,只能获取到JS渲染之前的页面。

-WebCollector

1.基于文本密度的网页正文自动抽取

2.支持断点重爬

3.支持代理

缺点:

1.不支持分布式,只能单机

2.无URL优先级调度

3.活跃度不高

-Heritrix3

Heritrix的爬虫定制参数多

缺点

1.单实例的爬虫,之间不能进行合作。

2.在有限的机器资源的情况下,却要复杂的操作。

3.只有官方支持,仅仅在Linux上进行了测试。

4.每个爬虫是单独进行工作的,没有对更新进行修订。

5.在硬件和系统失败时,恢复能力很差。

6.很少的时间用来优化性能。

7.相对于Nutch,Heritrix仅仅只是一个爬虫工具,没有提供搜索引擎。如果要对抓取的站点排序必须要实现类似于Pagerank的复杂算法。

Selenium

框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。使用简单,可使用Java,Python语言实现爬虫缺点:速度慢,适合每天爬取数据量要求不高的爬虫工作,因为selenium框架是必须要打开浏览器,然后模拟点击网页,这个过程和您用手打开浏览器打开网址去访问网站一样的速度。这个速度是比较慢。如果您要采集的数据,每天也就1-2万条那么可以用这个selenium框架。但是是我认为是最靠谱的爬虫框架,对于采集的数据量不大的话非常推荐。

在这之外okhttp,httpUtil也能实现基本的爬虫功能。

进入正题

这里就使用我极力推荐的Selenium框架。java环境肯定是需要的,然后这里使用的springboot+maven。

大致思路:

访问百度

查询中秋节

获取中秋节百度百科链接

访问中秋节百度百科页面并获取对应信息

在pom文件中引入Selenium依赖:

<dependency>\n<groupId>org.seleniumhq.selenium</groupId>\n<artifactId>selenium-java</artifactId>\n<version>3.4.0</version>\n</dependency>\n<dependency>\n<groupId>org.jsoup</groupId>\n<artifactId>jsoup</artifactId>\n<version>1.12.1</version>\n</dependency>\n复制代码

Selenium是模拟真实用户对浏览器进行操作,所以需要安装对于的浏览器并且下载对应的驱动,这里使用最新版本的火狐浏览器

驱动下载:

百度云下载链接:pan.baidu.com/s/1ugNF1l51…提取码:zqkl

阿里云盘链接:www.aliyundrive.com/s/JjJZCfwGK…

具体代码实现:

publicvoidaskBaidu()throwsException{\nDesiredCapabilitiesdesiredCapabilities=newDesiredCapabilities();\n//ssl证书支持\ndesiredCapabilities.setCapability(&34;,true);\n//css搜索支持\ndesiredCapabilities.setCapability(&34;,true);\n//js支持\ndesiredCapabilities.setJavascriptEnabled(true);\n//注意这里指定的路径为下载的火狐驱动路径\nSystem.setProperty(&34;,&34;);\nWebDriverdriver=newFirefoxDriver();\nStringhref=&34;;\n//1、访问目标网站\ndriver.get(href);\n//2、获取输入框,输入selenium\ndriver.findElement(By.id(&34;)).sendKeys(&34;);\n//3、获取“百度一下”按钮,进行搜索\ndriver.findElement(By.id(&34;)).click();\n//4、获取中秋节百度百科链接\n//获取页面源码\nStringpageSource=driver.getPageSource();\nDocumentdocument=Jsoup.parse(pageSource);\n//拿到对应class下面的内容\nElementstables=document.getElementsByClass(&34;);\n//获取A标签的href网址select获取到当前A标签attrhref获取到地址\nStringzhongQiu=tables.get(0).select(&34;).attr(&34;);\n//5、访问获取到的中秋节百度百科链接\ndriver.get(zhongQiu);\n//6、获取百度百科中秋节基本信息内容\nStringzhongQiuStr=driver.getPageSource();\nDocumentzhongQiuDoc=Jsoup.parse(zhongQiuStr);\nElementszqInfo=zhongQiuDoc.getElementsByClass(&34;);\n//根据div标签来划分\nElementsdiv=zqInfo.select(&34;);\nfor(inti=0;i<div.size();i++){\nStringinfo=div.get(i).text();\n//最后得到的中秋节信息\nSystem.out.println(info);\n}\n\n}\n复制代码

具体流程在代码中写的有注释,其中要注意以下两点

1.由于只是需要访问中秋节百度百科一个页面所以直接取了下标为0的内容,偶尔访问报下标越界重新请求下,原因是请求的时候页面没有完全加载出来就获取页面html代码,解决办法在获取页面源码的时候线程休眠1秒。

2.注意指定浏览器驱动路径时是指定下载的驱动路径,而不是启动文件路径

作者:骑电动车的小黄链接:https://juejin.cn/post/7005950194718408734来源:稀土掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。前言

网上一搜&34;,一般就会出现以下这几款:ApacheNutchWebMagicWebCollectorHeritrix3Selenium

这些框架有哪些优缺点?

-Nutch

支持分布式抓取,并有Hadoop支持,可以进行多机分布抓取,存储和索引。另外很吸引人的一点在于,它提供了一种插件框架,使得其对各种网页内容的解析、各种数据的采集、查询、集群、过滤等功能能够方便的进行扩展,正是由于有此框架,使得Nutch的插件开发非常容易,第三方的插件也层出不穷,极大的增强了Nutch的功能和声誉。

缺点:定制能力较弱、同时社区活跃度较低,网上的资料大多都是几年前的资料。

-WebMagic

简单的API,可快速上手模块化的结构,可轻松扩展提供多线程和分布式支持缺点:现在有部分主流网站通过js渲染页面,不支持JS页面抓取,只能获取到JS渲染之前的页面。

-WebCollector

1.基于文本密度的网页正文自动抽取

2.支持断点重爬

3.支持代理

缺点:

1.不支持分布式,只能单机

2.无URL优先级调度

3.活跃度不高

-Heritrix3

Heritrix的爬虫定制参数多

缺点

1.单实例的爬虫,之间不能进行合作。

2.在有限的机器资源的情况下,却要复杂的操作。

3.只有官方支持,仅仅在Linux上进行了测试。

4.每个爬虫是单独进行工作的,没有对更新进行修订。

5.在硬件和系统失败时,恢复能力很差。

6.很少的时间用来优化性能。

7.相对于Nutch,Heritrix仅仅只是一个爬虫工具,没有提供搜索引擎。如果要对抓取的站点排序必须要实现类似于Pagerank的复杂算法。

Selenium

框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。使用简单,可使用Java,Python语言实现爬虫缺点:速度慢,适合每天爬取数据量要求不高的爬虫工作,因为selenium框架是必须要打开浏览器,然后模拟点击网页,这个过程和您用手打开浏览器打开网址去访问网站一样的速度。这个速度是比较慢。如果您要采集的数据,每天也就1-2万条那么可以用这个selenium框架。但是是我认为是最靠谱的爬虫框架,对于采集的数据量不大的话非常推荐。

在这之外okhttp,httpUtil也能实现基本的爬虫功能。

进入正题

这里就使用我极力推荐的Selenium框架。java环境肯定是需要的,然后这里使用的springboot+maven。

大致思路:

访问百度

查询中秋节

获取中秋节百度百科链接

访问中秋节百度百科页面并获取对应信息

在pom文件中引入Selenium依赖:

<dependency>\n<groupId>org.seleniumhq.selenium</groupId>\n<artifactId>selenium-java</artifactId>\n<version>3.4.0</version>\n</dependency>\n<dependency>\n<groupId>org.jsoup</groupId>\n<artifactId>jsoup</artifactId>\n<version>1.12.1</version>\n</dependency>\n复制代码

Selenium是模拟真实用户对浏览器进行操作,所以需要安装对于的浏览器并且下载对应的驱动,这里使用最新版本的火狐浏览器

驱动下载:

百度云下载链接:pan.baidu.com/s/1ugNF1l51…提取码:zqkl

阿里云盘链接:www.aliyundrive.com/s/JjJZCfwGK…

具体代码实现:

publicvoidaskBaidu()throwsException{\nDesiredCapabilitiesdesiredCapabilities=newDesiredCapabilities();\n//ssl证书支持\ndesiredCapabilities.setCapability(&34;,true);\n//css搜索支持\ndesiredCapabilities.setCapability(&34;,true);\n//js支持\ndesiredCapabilities.setJavascriptEnabled(true);\n//注意这里指定的路径为下载的火狐驱动路径\nSystem.setProperty(&34;,&34;);\nWebDriverdriver=newFirefoxDriver();\nStringhref=&34;;\n//1、访问目标网站\ndriver.get(href);\n//2、获取输入框,输入selenium\ndriver.findElement(By.id(&34;)).sendKeys(&34;);\n//3、获取“百度一下”按钮,进行搜索\ndriver.findElement(By.id(&34;)).click();\n//4、获取中秋节百度百科链接\n//获取页面源码\nStringpageSource=driver.getPageSource();\nDocumentdocument=Jsoup.parse(pageSource);\n//拿到对应class下面的内容\nElementstables=document.getElementsByClass(&34;);\n//获取A标签的href网址select获取到当前A标签attrhref获取到地址\nStringzhongQiu=tables.get(0).select(&34;).attr(&34;);\n//5、访问获取到的中秋节百度百科链接\ndriver.get(zhongQiu);\n//6、获取百度百科中秋节基本信息内容\nStringzhongQiuStr=driver.getPageSource();\nDocumentzhongQiuDoc=Jsoup.parse(zhongQiuStr);\nElementszqInfo=zhongQiuDoc.getElementsByClass(&34;);\n//根据div标签来划分\nElementsdiv=zqInfo.select(&34;);\nfor(inti=0;i<div.size();i++){\nStringinfo=div.get(i).text();\n//最后得到的中秋节信息\nSystem.out.println(info);\n}\n\n}\n复制代码

具体流程在代码中写的有注释,其中要注意以下两点

1.由于只是需要访问中秋节百度百科一个页面所以直接取了下标为0的内容,偶尔访问报下标越界重新请求下,原因是请求的时候页面没有完全加载出来就获取页面html代码,解决办法在获取页面源码的时候线程休眠1秒。

2.注意指定浏览器驱动路径时是指定下载的驱动路径,而不是启动文件路径

网站源码分享提取和免费下载的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平