如何C# webbrowser中获取运行脚本模拟点击后跳转页的url

如何C# webbrowser中获取运行脚本模拟点击后跳转页的url,第1张

这是一幅整图,由于太大,本人就截成三个小图了;

通过上图的详细的步骤说明,我们清楚的指导我们要怎么做了;我们切换到代码片段:

2:

这是本人的项目结构,在Common文件夹里面有一个显眼的文件GatherWebBrowsercs这是本人对WebBrowser控件进行了一层简单的封装,就是在里面加上了一些事件参数,这个文件下面有一个GatherWebBrowserArgscs文件,这个是WebBrowserDocumentCompletedEventArgs对象的配送对象;

3:

这个对象的目的就是将DocumentCompleted事件分离出来,让我们处理N层跳转的时候能很方便; 由于代码较多,我们就看几个关键的地方,能帮大家理清一个头绪就行了;

4:

这个是我们Winform窗口,WebBrowser控件就是我封装的那个控件,大家请注意,在我们层层跳转到最后的采集页面时,我们要将事件链中的第一个事件断开,为什么要断开,是因为我们的WebBrowser控件的DocumentCompleted事件总是会在网页加载完毕后触发,一旦当我们进入到采集生命周期中的时候,这部分的逻辑我们是不需要在处理的,这里就涉及到一个技术细节“委托链”,如果对这方面的东西不太了解的话,请查阅本人的“NET简谈委托链”一文;

由于数据采集逻辑比较复杂,特别是自动数据采集,需要处理很多逻辑问题,这些东西都是因需求不同而不同,所以本人也只能讲解到这个层度了,大概的实现方式都是这样的,只要我们去慢慢的分析前后关系,HTML的组织,我相信肯定能写出好的数据采集;在下面的一篇文章中我将要通过WebBrowser实现与网页交互的系统,这方面的需求也是我们经常碰到的,比如我们有一个C/S的系统,但是我们的C/S系统要依附于B/S的系统,需要将我们的C/S系统的数据作为B/S系统的 *** 作条件,在输入查询条件的时候,我们需要调用我们的Winform窗口,进行数据查询,然后将我们的Winform结果填到HTML的文本框中;请读者继续关注,谢谢;

如果你是指电脑无法打开或浏览网页,你可根据以下情况进行排障:

1、宽带未连接。重新连接宽带。

2、路由器故障。拆除路由器后,进行宽带连接试用。

3、偶发性故障,如ADSL断流,电脑内存数据溢出等。重启电脑、modem试用。

4、浏览器故障,应用不恰当的代理服务器。卸载一切浏览器插件,恢复IE浏览器默认设置试用。去掉代理服务器设置。重装浏览器程序。

5、IP地址、DNS设置设置不当。一般家庭用户IP地址设置成自动获取,重设DNS服务器地址。

6、杀毒软件防火墙设置错误。临时关闭杀毒软件防火墙试用,如果恢复正常,检查被禁用项目,放行即可。

7、电脑中毒或者被攻击。升级杀毒软件至最新版本,打好系统补丁,在安全模式下查杀病毒,如果病毒杀不掉需要重做系统。

8、TCP/IP 出错。点击开始--运行--输入CMD,在Dos提示符下输入命令“ping 127001”(本机循环地址),如果显示Reply from 127001: bytes= time=ms TTL=,则表示TCP/IP协议运行正常,若显示Request timed out(超时),重装该协议。ping本机IP地址。使用ipconfig查看本机IP地址,若通则表明网络适配器工作正常,否则可能是网卡故障。WIN98、2000可用重装协议。XP、vista、win7需要重做系统。

9、系统文件丢失、 *** 作系统故障。可分析何种故障,可用系统安装盘恢复,或者重做系统。

10、新装软件之间有冲突。最近安装的程序分析可能引起冲突的软件,卸载试用。

11、不同的拨号软件相互干扰。win98 、2000系统只用一个拨号软件。XP、vista、win7尽量使用自带拨号程序。

12、多网卡冲突,或者网卡工作不正常。ping本机IP地址。使用ipconfig查看本机IP地址,若通则表明网络适配器工作正常,否则可能是网卡坏。禁用不用的网卡,检查网卡驱动是否与新装软件、新装驱动有冲突,咨询客户是否添加新硬件如果用请拆除临时新硬件使用。重启电脑网卡,更改网卡工作速率试用。

13、宽带信号,楼宇交换机出现故障。拨打宽带所属运营商客服热线进行故障申告。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401 Transitional//EN"

">

<c:forEach items="${resultMap}" var="data">

<tr>

<td>${datakey}</td>

<td>${datavalue}</td>

</tr>

</c:forEach>

#include <ioh>

#include "curl/curlh"

#pragma comment(lib, "ws2_32lib")

#pragma comment ( lib, "libcurllib" )

#pragma comment ( lib, "ws2_32lib" )

#pragma comment ( lib, "winmmlib" )

#pragma comment ( lib, "wldap32lib" )

//这是libcurl接收数据的回调函数,相当于recv的死循环

//其中stream可以自定义数据类型,这里我传入的是文件保存路径

static size_t write_callback( void ptr, size_t size, size_t nmemb, void stream )

{

int len = size nmemb;

int written = len;

FILE fp = NULL;

if ( access( (char)stream, 0 ) == -1 )

{

fp = fopen( (char) stream, "wb" );

}

else

{

fp = fopen( (char) stream, "ab" );

}

if (fp)

{

fwrite( ptr, size, nmemb, fp );

}

return written;

}

int GetUrl( const char url, char savepath )

{

CURL curl;

CURLcode res;

struct curl_slist chunk = NULL;

curl = curl_easy_init();

if ( curl ) {

curl_easy_setopt( curl, CURLOPT_VERBOSE, 0L );

curl_easy_setopt( curl, CURLOPT_URL, url );

//指定回调函数

curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, write_callback);

//这个变量可作为接收或传递数据的作用

curl_easy_setopt( curl, CURLOPT_WRITEDATA, savepath );

res = curl_easy_perform( curl );

if (res == CURLE_OK)

{

return 1;

}

return 0;

}

}

int main( void )

{

if ( GetUrl( "tsinacomcn", "c:/1txt" ) )

{

printf( "OK" );

}

return 0;

}

以上就是关于如何C# webbrowser中获取运行脚本模拟点击后跳转页的url全部的内容,包括:如何C# webbrowser中获取运行脚本模拟点击后跳转页的url、电脑打开网页出现URL无法获取怎么解决啊、跪求一个获取URL地址html代码的写法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9500879.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存