怎样在网页上(webrowser)点击搜索按钮时不下载源码不显示网页,只显示指向的网址(只立即获取url) ( 积分: 200 )

  • 主题发起人 主题发起人 happymanfreeman
  • 开始时间 开始时间
H

happymanfreeman

Unregistered / Unconfirmed
GUEST, unregistred user!
本人最近在开发一个通用的搜索软件时遇到难题:


1. 现在internet上的搜索软件都只支持部分搜索引擎,无论它们怎样宣传。我想开发一个支持网上所有搜索窗口的搜索工具,已解决了部分问题。现在的问题是,在网页上(webrowser)点击搜索按钮,当搜索结果很多,一张网页不能完全显示时,webrowser控件(ie)只下载部分html源码并显示它,怎样才能使它从缓冲区一次下载包含全部搜索结果网页的html源码(我查了很多地方,好象没有这方面的资料)?


2. 如果webrowser控件真的不能做到以上这点,那么在网页上(webrowser)点击搜索按钮时,能否使webrowser控件不下载html源码不显示,只获取新指向的url, 然后利用Microsoft Internet Transfer这个activex控件来下载缓冲区中的所有html源码,然后利用html源码来分析处理搜索结果?


3.在网页上(webrowser)点击搜索按钮时,还有别的办法使浏览器没有反应,而我们自己的软件获取新指向的url吗?


4. 为什么我一定要点击搜索按钮来获取url呢?因为如果象其他搜索软件(如飓风搜索通)一样把关键词放在地址栏经常会发生乱码,有时搜不出来,这样软件就没有通用性。如果我们把关键词(如中文等)放入搜索输入框点然后击搜索按钮搜索,地址栏有时不出现关键词而是出现乱码,那么关键词(如中文等)和出现的乱码之间有什么变换关系吗?能否在搜索前把关键词(如中文等)进行转换(如通过某个转换函数什么的), 然后我们不用搜索就获得点击搜索按钮后转向的准确url?


5. 还有一个同样具有挑战性的问题。internet上的搜索软件大都以一个表格的形式集中显示各个线程的搜索结果,但这些软件只支持少数特定的搜索引擎,特定的搜索引擎搜索结果网页html源码有各自特殊的标志,容易把网页中的搜索结果分析分离出来,但对于从任意的搜索窗口搜索出来的结果网页,如何把搜索结果分析分离出来呢?

6.如何编程在网页上选定特定的区域?如特定相对于网页左上角百分比坐标(不是相对于桌面的左上角)(30%,60%),(30%,70%),(50%,60%),(50%,70%)(一个矩形区域),或其它形式的定位方法。

上述问题请高手协助,谢谢!!!
 
本人最近在开发一个通用的搜索软件时遇到难题:


1. 现在internet上的搜索软件都只支持部分搜索引擎,无论它们怎样宣传。我想开发一个支持网上所有搜索窗口的搜索工具,已解决了部分问题。现在的问题是,在网页上(webrowser)点击搜索按钮,当搜索结果很多,一张网页不能完全显示时,webrowser控件(ie)只下载部分html源码并显示它,怎样才能使它从缓冲区一次下载包含全部搜索结果网页的html源码(我查了很多地方,好象没有这方面的资料)?


2. 如果webrowser控件真的不能做到以上这点,那么在网页上(webrowser)点击搜索按钮时,能否使webrowser控件不下载html源码不显示,只获取新指向的url, 然后利用Microsoft Internet Transfer这个activex控件来下载缓冲区中的所有html源码,然后利用html源码来分析处理搜索结果?


3.在网页上(webrowser)点击搜索按钮时,还有别的办法使浏览器没有反应,而我们自己的软件获取新指向的url吗?


4. 为什么我一定要点击搜索按钮来获取url呢?因为如果象其他搜索软件(如飓风搜索通)一样把关键词放在地址栏经常会发生乱码,有时搜不出来,这样软件就没有通用性。如果我们把关键词(如中文等)放入搜索输入框点然后击搜索按钮搜索,地址栏有时不出现关键词而是出现乱码,那么关键词(如中文等)和出现的乱码之间有什么变换关系吗?能否在搜索前把关键词(如中文等)进行转换(如通过某个转换函数什么的), 然后我们不用搜索就获得点击搜索按钮后转向的准确url?


5. 还有一个同样具有挑战性的问题。internet上的搜索软件大都以一个表格的形式集中显示各个线程的搜索结果,但这些软件只支持少数特定的搜索引擎,特定的搜索引擎搜索结果网页html源码有各自特殊的标志,容易把网页中的搜索结果分析分离出来,但对于从任意的搜索窗口搜索出来的结果网页,如何把搜索结果分析分离出来呢?

6.如何编程在网页上选定特定的区域?如特定相对于网页左上角百分比坐标(不是相对于桌面的左上角)(30%,60%),(30%,70%),(50%,60%),(50%,70%)(一个矩形区域),或其它形式的定位方法。

上述问题请高手协助,谢谢!!!
 
大富翁无高手??!!
 
你的這些問題過於偏。

我也正在弄一個搜索的軟件,不過立場和方式和你不同。
 
用AJAX的方法.
或者自己开发个 app把ie的http协议拦截了,自己处理.你想怎么弄都可以.
http://www.euromind.com/iedelphi/app.htm

再又就用idhttp来读数据,分析后转换成html提供给webbrowser显示
 
非常感谢大家的参与!
satanmonkey你好!你说的AJAX的方法具体是什么方法,AJAX好象找不到。你说的自己开发个 app把ie的http协议拦截,你能否结合我的问题给出代码?另外,
当搜索结果很多,一张网页不能完全显示时,浏览器会分页显示,默认显示第一页,其它页要按next一页一页来显示,webrowser能否一次下载并在一张网页中显示全部搜索结果?当
webrowser只下载不显示时,能否对这个webrowser进行DOM对象分析?
天空还下着沙你好!你也正在弄一個搜索的軟件,能否讲讲你的具体思路怎样?你的软件具有通用性吗?
 
AJAX是现在热门的web客户端技术.

app的代码我给你的网页上有.自己看懂就能做.

分页不分也是搜索引擎的服务器说了算的.他要分页,你就不可能一次下完.
 
satanmonkey你好!看来我的软件知识还不行, 得多向大家请教,我刚才粗粗看了一下你说的网页,待我细细地看,我想我会弄懂的。其实我原是学物理的,搞软件是半途出家,只是业余弄弄。用Microsoft Internet Transfer这个activex控件来下载呢?
http://study.99net.net/study/program/vb/1049939753.html 能否一次性下载全部搜索结果吗?
 
你觉得一次全部下载是个好注意吗?就拿google来说,有些关键字一搜索就几百页,如果一次全部下就是几M的数据量.你让用户等多久?搜索引擎不提供一次全部下载,你用什么东西都无法做到的.还是老实的一页一页的下.

另外如果只是下载搜索引擎的结果,用wb不是好注意,idhttp更适合你.
 
satanmonkey,你误会我的意思了,我是说先下载全部搜索结果,然后再来用数据库呀表格呀什么的处理。现在流行的搜索软件,搜索结果可以用表格显示,可以进行二次搜索,它具体的思路是怎样的?另外,你说开发个app把ie的http协议拦截,然后自己处理,就可获取指向的url,请你给出代码好吗?
 
http://study.99net.net/study/program/vb/1049939753.html 此处说Microsoft Internet Transfer这个activex控件能通过循环一次下载缓冲区中的全部内容,是说一次下载全部搜索结果呢?还是说一次下载搜索结果的某一页内容?
 
app代码
http://www.euromind.com/iedelphi/app.htm
有,自己参考.不过可能对你来说太深了.

他所的全部应该是某页
 
satanmonkey,http://www.euromind.com/iedelphi/app.htm 对我来说确实太深,该网站是个总目录,你能否给出此目录下那个与我们讨论有关(http协议拦截,获取url)的网页地址吗?
我现在想出个简单的土办法:
在网页上单击搜索按钮时,在WebBrowser.OnDownloadBegin事件中执行 WebBrowser. Stop(void);
edit1:=WebBrowser.LocationURL;
这样就能不下载又能获取指向的url,你说这种方法行吗?
 
http://www.euromind.com/iedelphi/app.htm

这页说的app就是拦截http的技术.
 
让我慢慢看吧,现在请你指点一下我说的那个土办法获取url行不行。
 
url应该在onNewWindow里面取
 
onNewWindow应该是单击弹出新窗口时发生,我说是用自己的WebBrowser,单击时仍在原来的WebBrowser里显示的情况啊。
 
OnDocumentComplete的时侯读LocationURL吧.
或者试试你自己的方法

试过才知道行不行.
 
应该先试,不过OnDocumentComplete的时侯读LocationURL肯定不行,因为这样就下载完并显示了文档,既耗时又耗内存。
 
后退
顶部