
用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坐标.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)