`
mikab
  • 浏览: 17782 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JS实现的爬虫,你觉得有用不

阅读更多
首先澄清一下,JS实现的爬虫是指用JS实现解析逻辑的爬虫,大概的想法就是把某个页面的内容下载下来,像IE或者Firefox那样把HTML的内容解析成DOM树,然后用JS解析页面的内容,得到自己想要的东西。

为什么要用JS呢?一是会JS的人基本都是搞WEB相关的东西的,DOM什么的都是熟人熟路;二是JS里面像CSS selector、jquery这样方便的东西,用起来应该是很爽的。

如果有这么个东西,大家以后没事爬爬数据的时候还是很方便的。

大家觉得这个主意怎么样?要是觉得好的人多,我打算找人一起弄个比较成熟的包出来 。
分享到:
评论
17 楼 achun 2011-02-01  
这个东西是完全可行的
具体实现到那一个细节咱们不讨论
js在页面上运行的优势,那是无可争议的
事实上我工作中已经做了一种手工的页面数据采集
就是针对具体的页面,写js,然后以书签的形式保存(sogou云输入也用的这种方法)
人工判断如果页面可抓的话,直接点击书签
书签就是一个js引人,完成页面数据采集,然后以window.name做数据传递(这种方法虽然不够高级,不过成本最低了)到提交页面,就是这样了
当然如果开放成浏览器插件的话功能就会更强大了
这个很有搞头的,毕竟采集的内容如果不人工判断就发的话,那也就变成垃圾信息了
16 楼 mikab 2011-01-27  
没错,就是因为用js能非常方便的方便的访问到DOM中某节点,并且提取其中想要的数据。

如果纯用Java解析肯定是比java+js的混合模式的运行效率要高很多的,但是java+js的开发效率要高很多的。
15 楼 wangking717 2011-01-27  
mikab 写道
wangking717 写道
mikab 写道
可能我说的不是很清楚。

JS实现的爬虫是指用JS实现解析逻辑的爬虫,但是资源的下载以及生成DOM等操作都是由Java来实现的。按照我帖子所说,用JS实现解析逻辑,主要还是看重了JS对DOM的天生友好以及很多的外部的库。



当然,脚本语言肯定不是java等编译语言跑的快,这是不可避免的缺陷。但是对于广大的不是专业爬虫开发人员来说,有个能使、方便的抓数据的东东,应该还是有用的。


如果资源的下载都是JAVA来实现,就不存在着跨域的问题了。LZ仅仅用JS来实现DOM的解析,很方便?用下HTMLparser吧,这个解析DOM就更方便了。



没看出HTMLparser比我这个提议更方便的地方。
你真的用过JS+selector从网页里提取数据吗?

Jquery解析DOM,提取数据是比较简单,但是我没发现,做JS爬虫有点何在。就因为JS对DOM解析友好?
14 楼 mikab 2011-01-26  
wangking717 写道
mikab 写道
可能我说的不是很清楚。

JS实现的爬虫是指用JS实现解析逻辑的爬虫,但是资源的下载以及生成DOM等操作都是由Java来实现的。按照我帖子所说,用JS实现解析逻辑,主要还是看重了JS对DOM的天生友好以及很多的外部的库。



当然,脚本语言肯定不是java等编译语言跑的快,这是不可避免的缺陷。但是对于广大的不是专业爬虫开发人员来说,有个能使、方便的抓数据的东东,应该还是有用的。


如果资源的下载都是JAVA来实现,就不存在着跨域的问题了。LZ仅仅用JS来实现DOM的解析,很方便?用下HTMLparser吧,这个解析DOM就更方便了。



没看出HTMLparser比我这个提议更方便的地方。
你真的用过JS+selector从网页里提取数据吗?
13 楼 wangking717 2011-01-26  
mikab 写道
可能我说的不是很清楚。

JS实现的爬虫是指用JS实现解析逻辑的爬虫,但是资源的下载以及生成DOM等操作都是由Java来实现的。按照我帖子所说,用JS实现解析逻辑,主要还是看重了JS对DOM的天生友好以及很多的外部的库。



当然,脚本语言肯定不是java等编译语言跑的快,这是不可避免的缺陷。但是对于广大的不是专业爬虫开发人员来说,有个能使、方便的抓数据的东东,应该还是有用的。


如果资源的下载都是JAVA来实现,就不存在着跨域的问题了。LZ仅仅用JS来实现DOM的解析,很方便?用下HTMLparser吧,这个解析DOM就更方便了。
12 楼 mikab 2011-01-24  
kjj 写道
js爬虫?要把网页解析成dom树,我觉得面临最大的问题是,如果面对各种不规范的html,看你有啥办法!!!!


我们不需要自己从头做起,可以有很多的开源的代码可以用的。


另外如果只做解析,不做显示,应该麻烦会小很多。
11 楼 mikab 2011-01-24  
kyfxbl 写道
hackwaly 写道
不错有想法
1L的问题可以通过修改浏览器的源代码实现


有什么用?你改完浏览器的源代码,然后呢?就你自己一个人自娱自乐?还是拿出¥来推广你这浏览器?



我们不做浏览器,我们只做工具软件包。
10 楼 mikab 2011-01-24  
可能我说的不是很清楚。

JS实现的爬虫是指用JS实现解析逻辑的爬虫,但是资源的下载以及生成DOM等操作都是由Java来实现的。按照我帖子所说,用JS实现解析逻辑,主要还是看重了JS对DOM的天生友好以及很多的外部的库。



当然,脚本语言肯定不是java等编译语言跑的快,这是不可避免的缺陷。但是对于广大的不是专业爬虫开发人员来说,有个能使、方便的抓数据的东东,应该还是有用的。
9 楼 kjj 2011-01-23  
js爬虫?要把网页解析成dom树,我觉得面临最大的问题是,如果面对各种不规范的html,看你有啥办法!!!!
8 楼 tsoukw 2011-01-23  
用js的唯一目的可能就是解析dom方便吧,但是效率应该很低,因为是要通过浏览器先显示成html,然后再析出dom模型供js调用,应该说意义 不是很大

参考一下这个博客园的网友的作品:
Jumony入门(一)从这里开始
http://www.cnblogs.com/Ivony/archive/2010/12/19/jumony-guide-1.html
7 楼 wangking717 2011-01-22  
这个首要条件是需要解决JS跨域问题。
6 楼 181054867 2011-01-22  
有必要用JS做这个事情吗?
5 楼 yonglin4605 2011-01-22  
kyfxbl 写道
hackwaly 写道
不错有想法
1L的问题可以通过修改浏览器的源代码实现


有什么用?你改完浏览器的源代码,然后呢?就你自己一个人自娱自乐?还是拿出¥来推广你这浏览器?


目的是为了实现爬虫,不是黑客吧。
本来就是自用的,不需要改别人的浏览器啊
4 楼 kyfxbl 2011-01-22  
hackwaly 写道
不错有想法
1L的问题可以通过修改浏览器的源代码实现


有什么用?你改完浏览器的源代码,然后呢?就你自己一个人自娱自乐?还是拿出¥来推广你这浏览器?
3 楼 illu 2011-01-22  
我想请教下 你如何把别人的HTML网页用JS转换成DOM对象?
2 楼 hackwaly 2011-01-21  
不错有想法
1L的问题可以通过修改浏览器的源代码实现
1 楼 wjjchen 2011-01-21  
JS如何跨域抓取数据?

相关推荐

    node.js实现爬虫

    本项目以"node.js实现爬虫"为主题,旨在教你如何利用Node.js构建一个具有图形用户界面(GUI)的网络爬虫。 首先,我们需要理解爬虫的基本概念。网络爬虫,或称网页抓取器,是一种自动化程序,它遍历互联网并抓取...

    Node.js-node.js实现爬虫批量下载图片

    在IT行业中,Node.js是一个基于Chrome V8引擎的JavaScript运行环境,因其异步、非阻塞I/O模型而被广泛用于构建高效、可扩展的网络应用。本项目"Node.js-node.js实现爬虫批量下载图片"是利用Node.js强大的网络请求...

    【课程代码】四周实现爬虫网站.zip

    在本课程"四周实现爬虫网站.zip"中,你将获得一套全面的教程,帮助你在短短四周内掌握网络爬虫的构建技术。爬虫是互联网数据挖掘的重要工具,它能够自动遍历网页并抓取所需信息,对于数据分析、研究、监控等领域具有...

    ---JS爬虫.zip---

    JavaScript(简称JS)爬虫是一种使用JavaScript语言编写的小程序,用于自动抓取网页信息。由于JavaScript在现代网页中的广泛使用,许多动态网站的内容是通过AJAX等技术异步加载的,传统的HTML爬虫可能无法捕获这些...

    C++实现爬虫,VS2019可正常运行

    在本项目中,我们主要探讨的是如何使用C++语言在Windows环境下实现一个基础的网络爬虫。C++是一种强大的编程语言,它具有高效性、灵活性和面向对象的特点,非常适合进行复杂的系统开发,包括网络爬虫的构建。Visual ...

    python-四周实现爬虫系统

    [Python] 四周实现爬虫系统 超经典的Python零基础实战化教学 Python零基础实战课程

    C++实现简单网络爬虫(爬取图片)

    使用C++Socket库实现的简单网络爬虫,可以爬取网页中的一些图片,貌似大部分网页都爬不了,我测试时,只爬取到 http://59pic.92demo.com/ 中的部分图片,并且在多次爬取后也不管用了。

    基于python+html实现爬虫+neo4j+D3实现的苏州旅游知识图谱源码+数据.zip

    基于python+html实现爬虫+neo4j+D3实现的苏州旅游知识图谱源码+数据.zip基于python+html实现爬虫+neo4j+D3实现的苏州旅游知识图谱源码+数据.zip基于python+html实现爬虫+neo4j+D3实现的苏州旅游知识图谱源码+数据....

    实现的一个简单爬虫

    【标题】:“实现的一个简单爬虫” 在编程领域,爬虫是一种自动化程序,用于从互联网上抓取数据。本项目“实现的一个简单爬虫”旨在介绍如何构建一个基础的网络爬虫,帮助初学者理解爬虫的基本原理和实现步骤。通过...

    扒js处理过的HTML代码.反爬手段之一就是用javascript数据渲染到页面上.所以如果你想写个反反爬虫来扒这样的网站页面,就按我这办法来扒.

    3. **JavaScript执行引擎**:对于不那么复杂的JavaScript渲染,也可以使用JavaScript执行引擎,如Node.js的V8引擎(JSDOM库)或Python的PyV8。它们可以在服务器端执行JavaScript代码,然后提取结果。例如,使用JSDOM...

    网络爬虫Python实现

    网络爬虫是自动化地从互联网上获取大量信息的程序,Python是实现这一功能的常用语言。本主题将深入探讨如何利用Python实现一个网络爬虫系统,特别关注在GUI环境中进行操作,以及处理TCP/IP通信和网页数据提取。 ...

    爬虫功能实现

    爬虫功能实现 爬虫功能实现是指通过编写爬虫程序来实现自动爬取网络数据的过程。爬虫程序可以模拟浏览器的行为,自动浏览网络页面,提取页面中的有用信息,并将其保存到本地文件中。 爬虫功能实现的重要性体现在...

    python 爬虫 实现增量去重和定时爬取实例_python增量爬虫_爬虫实现增量去重和定时爬取实例_python_wherev

    此外,为了实现更复杂的功能,如处理动态加载的内容或模拟登录,我们可以使用Selenium库,它允许浏览器自动化操作,这对于处理JavaScript渲染的内容非常有用。而requests库则用于基础的HTTP请求,BeautifulSoup用于...

    不同语言实现的爬虫程序和爬虫框架.zip

    本资源“不同语言实现的爬虫程序和爬虫框架.zip”包含了一个名为"awesome-crawler-master"的开源项目,这个项目汇集了多种编程语言实现的爬虫程序和爬虫框架,旨在为开发者提供丰富的参考和学习材料。 首先,我们来...

    Python3 实现淘女郎照片爬虫.pdf

    Python3 实现淘女郎照片爬虫 一、实验介绍 本项目通过使用 Python 实现一个淘女郎图片收集爬虫,学习并实践 BeautifulSoup、Selenium Webdriver 及正则表达式等知识。在项目开发过程中采用瀑布流开发模型。 知识点...

    爬虫源码实现及文档

    通过深入学习这个资源,你不仅可以掌握基础的爬虫实现,还能了解到实际开发中的一些技巧和策略,从而提升你在数据获取和处理方面的能力。记得在实践中遵循相关法律法规,尊重网站的Robots协议,合理使用爬虫技术。

    js调试工具,v7.5爬虫工程师必备

    JavaScript是Web开发中的核心语言,尤其对于爬虫工程师而言,理解和掌握JS的调试技巧至关重要。本文将详细介绍一款名为“编程喵JS调试工具”的版本7.5,它专为爬虫工程师设计,支持V8引擎和浏览器环境下的JS调试,...

    stealth.min.js 隐藏 爬虫特征

    stealth.min.js 隐藏 爬虫特征

    Python爬虫JS逆向进阶课程

    这门课程是Python爬虫JS逆向进阶课程,将教授学员如何使用Python爬虫技术和JS逆向技术获取网站数据。学习者将学习如何分析网站的JS代码,破解反爬虫机制,以及如何使用Selenium和PhantomJS等工具进行模拟登录和数据...

    Python爬虫JS逆向进阶课程-课程网盘链接提取码下载 .txt

    这门课程是Python爬虫JS逆向进阶课程,将教授学员如何使用Python爬虫技术和JS逆向技术获取网站数据。学习者将学习如何分析网站的JS代码,破解反爬虫机制,以及如何使用Selenium和PhantomJS等工具进行模拟登录和数据...

Global site tag (gtag.js) - Google Analytics