110,537
社区成员
发帖
与我相关
我的任务
分享
public void getContent()
{
int begin = 0;
int end = 0;
string pagesSum = "";
string currentPage = "";
string content = "";
int currEnd = 0;
string province = "";
(webBrowser1. ActiveXInstance as SHDocVw.WebBrowser).NavigateComplete2 += new SHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(wb_NavigateComplete2);
webBrowser1.Navigate("http:****#");
webBrowser1.ScriptErrorsSuppressed = false;
loading = true;
while (loading)
{
Application.DoEvents();
}
for (int i = 0; i < webBrowser1.Document.All.Count; i++)
{
if (webBrowser1.Document.All[i].TagName == "A" && webBrowser1.Document.All[i].GetAttribute("href").ToString().Trim() == "http://**")
{
province = webBrowser1.Document.All[i].InnerText;
webBrowser1.Document.All[i].InvokeMember("click");//引发”CLICK”事件
int k = 1;
while (true)
{
loading = true;
while (loading)
{
Application.DoEvents();
}
content = webBrowser1.Document.Body.InnerHtml.ToString();
if (content.Contains("下一页"))
{
begin = content.IndexOf("条,共") + 3;
end = content.IndexOf("页,当前");
pagesSum = content.Substring(begin, end - begin);
currentPage = content.Substring(end + 5, 6);
currEnd = currentPage.LastIndexOf("页");
currentPage = currentPage.Substring(0, currEnd);
this.richTextBox1.Text = content;
content=content.Replace("'","''");
try
{
string sql = "insert into t_agent(province,html) values('" + province + "','" + content + "')";
SQLTrans.DoTran(sql);
}
catch(Exception e)
{
throw e;
}
for (int j = 0; j < webBrowser1.Document.All.Count; j++)
{
if (webBrowser1.Document.All[j].TagName == "A" && webBrowser1.Document.All[j].InnerText.Trim() == "下一页")
{
//webBrowser1.Document.All[j].InvokeMember("click");//引发”CLICK”事件
webBrowser1.Navigate("javascript:turnpage('" + k + "');");
k++;
break;
}
}
}
else
{
webBrowser1.Refresh();
}
if (pagesSum.Equals(currentPage))
break;
}
}
}
}
void wb_NavigateComplete2(object pDisp, ref object URL)
{
mshtml.IHTMLDocument2 doc = (webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).Document as mshtml.IHTMLDocument2;
doc.parentWindow.execScript("window.alert=null", "javascript");
doc.parentWindow.execScript("window.confirm=null", "javascript");
doc.parentWindow.execScript("window.open=null", "javascript");
doc.parentWindow.execScript("window.showModalDialog=null", "javascript");
doc.parentWindow.execScript("window.close=null", "javascript");
doc.parentWindow.execScript("function alert(str){return ''}", "javascript");
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.Url.ToString() != LastUrl)//判断加载完毕
{
loading = false;
}
}
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public partial class Form8 : Form
{
bool loading = true;
public Form8()
{
InitializeComponent();
webBrowser1.NavigateError += new
WebBrowserNavigateErrorEventHandler(wb_NavigateError);
webBrowser1.BeforeNewWindow += new EventHandler<WebBrowserExtendedNavigatingEventArgs>(ieBrowser_BeforeNewWindow);
}
private void wb_NavigateError(
object sender, WebBrowserNavigateErrorEventArgs e)
{
// Display an error message to the user.
MessageBox.Show("Cannot navigate to " + e.Url);
}
void ieBrowser_BeforeNewWindow(object sender, WebBrowserExtendedNavigatingEventArgs e)
{
e.Cancel = true;
((ExtendedWebBrowser)sender).Navigate(e.Url);
}
private void button1_Click(object sender, EventArgs e)
{
getContent();
}
public void getContent()
{
webBrowser1.Navigate("***");
webBrowser1.ScriptErrorsSuppressed = true;
loading = true;
while (loading)
{
Application.DoEvents();
}
for (int i = 0; i < webBrowser1.Document.All.Count; i++)
{
if (webBrowser1.Document.All[i].TagName == "A" && webBrowser1.Document.All[i].GetAttribute("href").ToString().Trim() == "***")
{
province = webBrowser1.Document.All[i].InnerText;
webBrowser1.Document.All[i].InvokeMember("click");//引发”CLICK”事件
while (true)
{
loading = true;
while (loading)
{
Application.DoEvents();
}
try
{
content = webBrowser1.Document.Body.InnerHtml.ToString();
if (content.Contains("下一页"))
{
if (int.Parse(pagesSum.Trim()) <= int.Parse(currentPage.Trim()))
break;
page = int.Parse(currentPage.Trim()) + 1;
webBrowser1.Navigate("javascript:turnpage('" + page + "')");
}
else
{
// webBrowser1.Navigate("javascript:turnpage('" + page + "')");
webBrowser1.Document.ExecCommand("Refresh", false, null);
}
}
catch (Exception e)
{
throw e;
}
}
}
}
}
private void extendedWebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)//判断加载完毕
{
loading = false;
}
}
}
while (true)
{
loading = true;
while (loading)
{
Application.DoEvents();
}
try
{
content = webBrowser1.Document.Body.InnerHtml.ToString();
this.richTextBox1.Text = content;
if (content.Contains("下一页"))
{
if (int.Parse(pagesSum.Trim()) <= int.Parse(currentPage.Trim()))
break;
page = int.Parse(currentPage.Trim()) + 1;
webBrowser1.Navigate("javascript:turnpage('" + page + "')");
}
else
{
webBrowser1.Navigate("javascript:turnpage('" + page + "')");
}
}
catch(Exception ex)
{
throw ex;
}
}