有人做过网络爬虫来爬反爬的网页么?

Michelle_2009 2010-05-25 01:46:57
如题
...全文
413 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
binghuo1000 2012-02-15
  • 打赏
  • 举报
回复
我现在也正好遇到了这样的问题:如何用脚本解析引擎模拟浏览器来执行网页中的js代码
请问你对这个问题有方法了吗?
ZY171450 2011-03-10
  • 打赏
  • 举报
回复
模拟浏览器来爬
Milo2015 2010-05-26
  • 打赏
  • 举报
回复
淅沥沥
Michelle_2009 2010-05-26
  • 打赏
  • 举报
回复
无解。。。
zhongguolong_mei 2010-05-25
  • 打赏
  • 举报
回复
动态生成的url 连google都不抓的,你要分析出这个你只能自己分析你要抓取页面的html中的js代码块,然后去 写抓取。比如说google map中的地图块就是Js自动生成的。 你只能尝试用java代码代替js代码去算新的url然后抓取该连接的图片,最后拼接。
izard999 2010-05-25
  • 打赏
  • 举报
回复
好的.. 发下我邮箱hui8023pingf@163.com 我看看你说的本地化是什么东西.!
以前还真没这么搞过.! thank you
Michelle_2009 2010-05-25
  • 打赏
  • 举报
回复
好吧 还是谢谢你啦~,你要是需要的话我这里有几篇论文可以给你参考,呵呵
izard999 2010-05-25
  • 打赏
  • 举报
回复
这个还真没用过.! 以前都自己改完了再上去用的.! 俺也去现学一下好了.!
呵呵.!
Michelle_2009 2010-05-25
  • 打赏
  • 举报
回复
我在论文上看到说可以用脚本引擎模拟浏览器执行js脚本,把浏览器内置对象本地化以后就可以使用脚本引擎解析了。而和url有关的dom对象只有window和document,所以不能说js里面不要有浏览器相关的对象吧,现在的问题是我不知道怎么实现本地化。。。
izard999 2010-05-25
  • 打赏
  • 举报
回复
对了,问得好.!刚忘记告诉你了.!
程序发请求从某些程度上讲是代替不了浏览器的.!比如就像你说的window/document一些浏览器的对象,程序是无法解析的.!
ScriptEngineManager调用js的时候,你的js里面不要有浏览器相关的对象,比如说window,document.
所以一般我们爬回来js都会做一些小小的修改,把与浏览器相关的对象全部用其他方式解决.!
比如说鼠标位置, window.event之类的, 自己模拟下鼠标,每次把这个位置调整下.!
曾经我也为改js花了一些功夫的.!
Michelle_2009 2010-05-25
  • 打赏
  • 举报
回复
但是对于js里边涉及的浏览器对象,比如document和window,怎么处理呢?向您请教了
izard999 2010-05-25
  • 打赏
  • 举报
回复
htmlParser是javax.swing包下自带的解析html的一些类. 而httpParser是第三方提供个jar包.!
发送一个请求到一个网站, 毕竟会相应一个结果给你是吧.?服务器和你的java程序是通过什么通信的呢.?inputStream和outputStream对吧.?
HttpClient是对url/Socket的封装, 可以直接拿到返回结果, 然后用EntityUtils.toString(entity)可以把你的网页变成字符串形式.! 这个时候你拿到的网页肯定既有js,也有html内容吧.?解析它就好了阿.! 如果发现还有<script>标签,就拿这里面的内容再发请求拿结果.!
不用你说的rhino和corba, 就用你说的htmlParser和HttpClient+ScriptEngineManager就能完成你想要做的事了.!
Michelle_2009 2010-05-25
  • 打赏
  • 举报
回复
楼上高手啊!我刚刚说错了,应该是htmlparser不是httpparser。

刚才你说的用httpclient发请求,爬回来一个页面,用httpparser就可以得到网页中所有的超链接,你说的这种超链接是静态的吧?还有一些超链接是通过执行js语句得出的url,这种url我也需要爬下来的。

不知楼上是否知道rhino或者corba?
izard999 2010-05-25
  • 打赏
  • 举报
回复
httpParser是一个解析包而已.!
比如说你用httpClient发请求,爬回来一个页面,那么这个时候你想拿到网页中所有的超链接, 这个时候用httpParser就很容易了阿.! 例子jar包里肯定有!

你用ScriptEngineManager调用js,不就可以获得js动态生成的url了吗.? 你上面那句话一说,我还真不太明白你有什么需求了.! java调用js跟你要爬网页关系不大.!
但是比如说你拿到某些超链接, 当点击这个超链接会触发一段js函数的时候,这个时候才会跟ScriptEngineManager挂钩.!
Michelle_2009 2010-05-25
  • 打赏
  • 举报
回复
httpParser?求详解。。。
我最近想做使用脚本引擎模拟浏览器来执行网页中的js代码获得动态的url,也看到了httpParser,不知道它功能这么强大
辛鹤 2010-05-25
  • 打赏
  • 举报
回复
google 网络爬虫
izard999 2010-05-25
  • 打赏
  • 举报
回复
这个实现非常容易的. 用httpClient和httpParser可以很轻松搞定
healer_kx 2010-05-25
  • 打赏
  • 举报
回复
HttpClient,搜~

81,091

社区成员

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

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