要做一个类似八爪鱼火车头之类的数据挖掘工具,大家讨论讨论

http://www.jb51.net/softjc/178489.html

这是一款商业的软件


现在的需求就是伪这个软件

但无从下手,不知道怎样可以做到在页面中点击某个链接或者文字,可以在后台中得到上面的链接(八爪鱼还能对这些点选的元素进行红色框选)!


大家有没有什么思路?讨论讨论吧!是否要自己编译一个浏览器?
...全文
637 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mrhuang12 2018-12-05
  • 打赏
  • 举报
回复
大佬您好,最近我也在研究“如何通过在程序中内置webbrower,当用户点选某个位置,那么得到所对应的标签呢?然后知道这个标签,是否下一步应该去源代码中进行匹配?”,能否请教您一下,方便的话可以加您的qq吗,我的是1072041197
  • 打赏
  • 举报
回复
引用 9 楼 showbo 的回复:
[quote=引用 8 楼 zengraoli 的回复:] [quote=引用 7 楼 showbo 的回复:] [quote=引用 6 楼 zengraoli 的回复:] [quote=引用 5 楼 showbo 的回复:] 没用过八爪鱼,看你的文章他应该是内置了webbrower之类的给你操作,采集的时候是否通过wb来操作不晓得,要是不通过wb js生成的内容采集不到。 火车头没有那个功能,所以100%无法采集js动态生成的。 你要采集对应网站ajax生成的内容,就需要用开发工具找到ajax接口,这个很简单,浏览器f12调出开发工具看网络xhr请求部分就知道数据了,也可能是jsonp数据,你就需要一个一个查看请求的连接地址看返回的数据了
我目前就是用chrome从后台得到提交的地址,然后通过这个地址去得到ajax刷新的数据; 不过这就有一个问题,每次改动,都对应要用chrome从后台得到一次,甚至是每个网站都要这么做一次; 举个例子,taobao商品页的评论是动态加载出来的,但是八爪鱼在内置的浏览器中加载taobao商品页之后,用户只需要在评论的内容里点一下,往后就能按照这个来抓取,所以我觉得他应该有个什么方式,得到ajax刷出来的内容的 这里也排除了他内置加入了这些接口,因为有些网站不太常用,他也能做到。[/quote] 有些网址加了防采集的token数据,会验证这个token,防止采集或者crsf类似跨站攻击,八爪鱼内置浏览器应该自动收集了这些token一起发送,你要做的话就需要内置一个wb(如果token动态加载的)来获取token,如果页面上直接存在token,你需要先发送一个http请求得到html页面分析获取token,然后采集分页的时候附带token一起发送 红色地方应该是加了特殊标记,如判断token之类的标记,有些cms的token键名称都是一样,只要盘旋下这些键名称什么的就知道是否有token了[/quote] 我了解你的意思了,第一步我还是要问问,我如何通过在程序中内置webbrower,当用户点选某个位置,那么得到所对应的标签呢?然后知道这个标签,是否下一步应该去源代码中进行匹配?[/quote] wb可以动态插入js代码的,你插入一个document.onclick代码,通过event.srcElement就得到当前点击的标签了,然后遍历下父对象判断是否是有form,有form的下遍历下form下的hidden控件,一般token这种存储在hidden里面的多[/quote] 了解了!我这两天先试试,不行再来继续回复!十分感谢
Go 旅城通票 2016-02-25
  • 打赏
  • 举报
回复
引用 8 楼 zengraoli 的回复:
[quote=引用 7 楼 showbo 的回复:] [quote=引用 6 楼 zengraoli 的回复:] [quote=引用 5 楼 showbo 的回复:] 没用过八爪鱼,看你的文章他应该是内置了webbrower之类的给你操作,采集的时候是否通过wb来操作不晓得,要是不通过wb js生成的内容采集不到。 火车头没有那个功能,所以100%无法采集js动态生成的。 你要采集对应网站ajax生成的内容,就需要用开发工具找到ajax接口,这个很简单,浏览器f12调出开发工具看网络xhr请求部分就知道数据了,也可能是jsonp数据,你就需要一个一个查看请求的连接地址看返回的数据了
我目前就是用chrome从后台得到提交的地址,然后通过这个地址去得到ajax刷新的数据; 不过这就有一个问题,每次改动,都对应要用chrome从后台得到一次,甚至是每个网站都要这么做一次; 举个例子,taobao商品页的评论是动态加载出来的,但是八爪鱼在内置的浏览器中加载taobao商品页之后,用户只需要在评论的内容里点一下,往后就能按照这个来抓取,所以我觉得他应该有个什么方式,得到ajax刷出来的内容的 这里也排除了他内置加入了这些接口,因为有些网站不太常用,他也能做到。[/quote] 有些网址加了防采集的token数据,会验证这个token,防止采集或者crsf类似跨站攻击,八爪鱼内置浏览器应该自动收集了这些token一起发送,你要做的话就需要内置一个wb(如果token动态加载的)来获取token,如果页面上直接存在token,你需要先发送一个http请求得到html页面分析获取token,然后采集分页的时候附带token一起发送 红色地方应该是加了特殊标记,如判断token之类的标记,有些cms的token键名称都是一样,只要盘旋下这些键名称什么的就知道是否有token了[/quote] 我了解你的意思了,第一步我还是要问问,我如何通过在程序中内置webbrower,当用户点选某个位置,那么得到所对应的标签呢?然后知道这个标签,是否下一步应该去源代码中进行匹配?[/quote] wb可以动态插入js代码的,你插入一个document.onclick代码,通过event.srcElement就得到当前点击的标签了,然后遍历下父对象判断是否是有form,有form的下遍历下form下的hidden控件,一般token这种存储在hidden里面的多
  • 打赏
  • 举报
回复
引用 7 楼 showbo 的回复:
[quote=引用 6 楼 zengraoli 的回复:] [quote=引用 5 楼 showbo 的回复:] 没用过八爪鱼,看你的文章他应该是内置了webbrower之类的给你操作,采集的时候是否通过wb来操作不晓得,要是不通过wb js生成的内容采集不到。 火车头没有那个功能,所以100%无法采集js动态生成的。 你要采集对应网站ajax生成的内容,就需要用开发工具找到ajax接口,这个很简单,浏览器f12调出开发工具看网络xhr请求部分就知道数据了,也可能是jsonp数据,你就需要一个一个查看请求的连接地址看返回的数据了
我目前就是用chrome从后台得到提交的地址,然后通过这个地址去得到ajax刷新的数据; 不过这就有一个问题,每次改动,都对应要用chrome从后台得到一次,甚至是每个网站都要这么做一次; 举个例子,taobao商品页的评论是动态加载出来的,但是八爪鱼在内置的浏览器中加载taobao商品页之后,用户只需要在评论的内容里点一下,往后就能按照这个来抓取,所以我觉得他应该有个什么方式,得到ajax刷出来的内容的 这里也排除了他内置加入了这些接口,因为有些网站不太常用,他也能做到。[/quote] 有些网址加了防采集的token数据,会验证这个token,防止采集或者crsf类似跨站攻击,八爪鱼内置浏览器应该自动收集了这些token一起发送,你要做的话就需要内置一个wb(如果token动态加载的)来获取token,如果页面上直接存在token,你需要先发送一个http请求得到html页面分析获取token,然后采集分页的时候附带token一起发送 红色地方应该是加了特殊标记,如判断token之类的标记,有些cms的token键名称都是一样,只要盘旋下这些键名称什么的就知道是否有token了[/quote] 我了解你的意思了,第一步我还是要问问,我如何通过在程序中内置webbrower,当用户点选某个位置,那么得到所对应的标签呢?然后知道这个标签,是否下一步应该去源代码中进行匹配?
Go 旅城通票 2016-02-25
  • 打赏
  • 举报
回复
引用 6 楼 zengraoli 的回复:
[quote=引用 5 楼 showbo 的回复:]
没用过八爪鱼,看你的文章他应该是内置了webbrower之类的给你操作,采集的时候是否通过wb来操作不晓得,要是不通过wb js生成的内容采集不到。
火车头没有那个功能,所以100%无法采集js动态生成的。

你要采集对应网站ajax生成的内容,就需要用开发工具找到ajax接口,这个很简单,浏览器f12调出开发工具看网络xhr请求部分就知道数据了,也可能是jsonp数据,你就需要一个一个查看请求的连接地址看返回的数据了

我目前就是用chrome从后台得到提交的地址,然后通过这个地址去得到ajax刷新的数据;
不过这就有一个问题,每次改动,都对应要用chrome从后台得到一次,甚至是每个网站都要这么做一次;

举个例子,taobao商品页的评论是动态加载出来的,但是八爪鱼在内置的浏览器中加载taobao商品页之后,用户只需要在评论的内容里点一下,往后就能按照这个来抓取,所以我觉得他应该有个什么方式,得到ajax刷出来的内容的

这里也排除了他内置加入了这些接口,因为有些网站不太常用,他也能做到。[/quote]
有些网址加了防采集的token数据,会验证这个token,防止采集或者crsf类似跨站攻击,八爪鱼内置浏览器应该自动收集了这些token一起发送,你要做的话就需要内置一个wb(如果token动态加载的)来获取token,如果页面上直接存在token,你需要先发送一个http请求得到html页面分析获取token,然后采集分页的时候附带token一起发送

红色地方应该是加了特殊标记,如判断token之类的标记,有些cms的token键名称都是一样,只要盘旋下这些键名称什么的就知道是否有token了
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
没用过八爪鱼,看你的文章他应该是内置了webbrower之类的给你操作,采集的时候是否通过wb来操作不晓得,要是不通过wb js生成的内容采集不到。 火车头没有那个功能,所以100%无法采集js动态生成的。 你要采集对应网站ajax生成的内容,就需要用开发工具找到ajax接口,这个很简单,浏览器f12调出开发工具看网络xhr请求部分就知道数据了,也可能是jsonp数据,你就需要一个一个查看请求的连接地址看返回的数据了
我目前就是用chrome从后台得到提交的地址,然后通过这个地址去得到ajax刷新的数据; 不过这就有一个问题,每次改动,都对应要用chrome从后台得到一次,甚至是每个网站都要这么做一次; 举个例子,taobao商品页的评论是动态加载出来的,但是八爪鱼在内置的浏览器中加载taobao商品页之后,用户只需要在评论的内容里点一下,往后就能按照这个来抓取,所以我觉得他应该有个什么方式,得到ajax刷出来的内容的 这里也排除了他内置加入了这些接口,因为有些网站不太常用,他也能做到。
Go 旅城通票 2016-02-25
  • 打赏
  • 举报
回复
没用过八爪鱼,看你的文章他应该是内置了webbrower之类的给你操作,采集的时候是否通过wb来操作不晓得,要是不通过wb js生成的内容采集不到。 火车头没有那个功能,所以100%无法采集js动态生成的。 你要采集对应网站ajax生成的内容,就需要用开发工具找到ajax接口,这个很简单,浏览器f12调出开发工具看网络xhr请求部分就知道数据了,也可能是jsonp数据,你就需要一个一个查看请求的连接地址看返回的数据了
  • 打赏
  • 举报
回复
引用 1 楼 hch126163 的回复:
采集软件核心: httpRequest + Regex
不是这个意思,我指的是他那部分,点击鼠标然后匹配到页面中对应的标签;简单来说就是UI交互的部分;
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
[quote=引用 1 楼 hch126163 的回复:] 采集软件核心: httpRequest + Regex
还有如果是ajax动态加载的需要找到数据接口采集,而不是采集显示的页面,采集不到[/quote] 如果是这个 怎么找到呢?页面没法匹配啊,估计核心就是这里了
Go 旅城通票 2016-02-24
  • 打赏
  • 举报
回复
引用 1 楼 hch126163 的回复:
采集软件核心: httpRequest + Regex
还有如果是ajax动态加载的需要找到数据接口采集,而不是采集显示的页面,采集不到
hch126163 2016-02-24
  • 打赏
  • 举报
回复
采集软件核心: httpRequest + Regex

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧