c#怎么用HtmlElement获取网页上的图片

c#怎么用HtmlElement获取网页上的图片,第1张

用WebBrowser

WebBrowser

wb

=

new

WebBrowser();

wbNavigate(new

Uri(url));//加载uri地址的网页

HtmlElementCollection

elementColl

=

wbDocumentGetElementsByTagName("img");

//获取img标签对象

string

imgUrl

=

elementColl[i]GetAttribute("src");//这里获取到的是的Url地址

WebClient webClient = new WebClient();

SaveFileDialog save = new SaveFileDialog();

>

WebResponse response = requestGetResponse();

StreamReader read = new StreamReader(responseGetResponseStream(), EncodingGetEncoding("GB2312"));

string str = readReadToEnd();

string title = webHtmlDocumentGetElementsByTagName("title")[0]InnerHtml;

//将下载的src属性值修改为本地的url

HtmlElementCollection imgCollection = webHtmlDocumentImages;

foreach (HtmlElement img in imgCollection)

{

string imgSrc = imgGetAttribute("src");

int imgNameIndex = imgSrcLastIndexOf("/");

string path = imgSrcSubstring(0, imgNameIndex);

str = strReplace(path, "images");

}

//下载的网页名称为网页的title值

saveFileName = title;

saveFilter = "网页,全部(htm,html)|htm,html";

if (saveShowDialog() != DialogResultOK) return;

//将下载到的数据(html源代码)写入本地html文件中,生成新的本地静态页面

FileStream filestream = new FileStream(saveFileName, FileModeCreate);

StreamWriter writer = new StreamWriter(filestream, EncodingDefault);

writerWrite(strToCharArray());

writerClose();

filestreamClose();

//新建文件夹images,存放下载页面的

DirectoryCreateDirectory("images");

//下载页面所有

foreach (HtmlElement img in imgCollection)

{

//获取页面所有的名称

string imgSrc = imgGetAttribute("src");

int imgNameIndex = imgSrcLastIndexOf("/");

string imgName = imgSrcSubstring(imgNameIndex + 1);

webClientDownloadFile(imgSrc, "images/" + imgName);

}

}

界面如图,下面的控件是webbrowser控件,大体思路是,将页面的html源码下载下来,再生成本地静态页面,要想正常打开静态页面,还得修改,视频和超链接的路径(改为本地静态页面的路径);要想下载所有的子页面,可以用递归循环下载链接。

HTML中的标签没有与自身位置相对应的属性,虽然可以用CSS指定绝对位置,但是这种做法很少用,而且只对部分元素有效。如果这个网页非常简单,或许可以通过分析HTML源代码,根据Body的顶部间距、左边间距、字体大小、行距等来大体计算出一个链接文本在WebBrowser中的位置,进而转换成屏幕坐标;一旦这个网页比较麻烦,这种做法就不再可能,因为网页中有很多元素都是无法获取其面积的绝对大小的,比如一个未指定具体尺寸的、一个embed等,如果使用了框架那就更惨。

我能哈哈你这段html里面正好有个onclick事件如果连这个都没有那就不好了既然有我们直接调用js代码即可WebBrowser1OleObjectdocumentparentWindowsaveForm1();试一下,goodluck路就在脚下,兄弟

以上就是关于c#怎么用HtmlElement获取网页上的图片全部的内容,包括:c#怎么用HtmlElement获取网页上的图片、刚接触C#,我想用C#下载js页面,其中用到WebBrowser这个东东,不懂。 请各位帮忙指点一下,最好给一下代码、vb 如何获得webbrowser控件的坐标 下面代码可以获取网页内坐标,但不可以获取图片或FALSH坐标.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存