十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Public Function webCaptureContent(ByVal mWebsiteUrl As String, ByVal mWebsiteType As Boolean) As String
创新互联于2013年创立,先为广阳等服务建站,广阳等地企业,进行企业商务咨询服务。为广阳企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
'启动一次具体的数据采集工作,返回采集到的HTML内容:要求必须输入带://的全地址数据
On Error Resume Next
Dim Str_WebContent As String = "请输入查找网站地址."
Dim wb As WebClient = New WebClient() '//创建一个WebClient实例
If mWebsiteUrl.IndexOf("://") 0 Then
'//获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。(可有可无)
wb.Credentials = CredentialCache.DefaultCredentials
'//从资源下载数据并返回字节数组。(加@是因为网址中间有"/"符号)
Dim pagedata As Object = wb.DownloadData(mWebsiteUrl)
'//转换字符
If mWebsiteType Then
Str_WebContent = Encoding.Default.GetString(pagedata)
Else
Str_WebContent = Encoding.UTF8.GetString(pagedata)
End If
End If
Return Str_WebContent '提取出来新闻内容,删除Body前后的多余内容,同时补充上该 Body标记,形成完整的内容 Str_WebContent '
End Function
首先:鼠标API函数
[DllImport("User32")]
public extern static void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo);
[DllImport("User32")]
public extern static void SetCursorPos(int x, int y);
[DllImport("User32")]
public extern static bool GetCursorPos(out POINT p);
public struct POINT
{
public int X;
public int Y;
}
public enum MouseEventFlags
{
Move = 0x0001,
LeftDown = 0x0002,
LeftUp = 0x0004,
RightDown = 0x0008,
RightUp = 0x0010,
MiddleDown = 0x0020,
MiddleUp = 0x0040,
Wheel = 0x0800,
Absolute = 0x8000
}
其次:载入webBrowser
private void FormBrower_Load(object sender, EventArgs e)
{
webBrowser.Navigate("");
}
接着:根据鼠标API获取到X,Y坐标区域。。
如何通过鼠标点击,获取的区域,导出网页元素的XPATH?
解析步骤:
创建一个HtmlElment2的getBoundingClientRect方法得到元素矩形(Rect),即元素Webbrowser位置。再通过offsetTop, .offsetLeft, .offsetWidth, .offsetHeight四个属性,获取绝对位置。
我知道,WebBrowser.document.activeElement.ID能够获取到某元素的ID。
但是,,如何获取到网页元素的XPATH,始终搞不出来。。。
Imports System.Net
Imports System.IO
Imports System.Text.RegularExpressions
Public Class Form1
Private Sub button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim stream As IO.Stream = WebRequest.Create(UrlAdress).GetResponse().GetResponseStream()
'注意urladress为你上面的网页地址。
Dim sr As StreamReader = New StreamReader(stream, System.Text.Encoding.UTF8)
Label1.Text = Regex.Match(sr.ReadToEnd, "回答采纳率").ToString
'sr。readtoend读取网页流到末尾,即使用正则表达式从网页流中提取“回答采纳率”,赋值给Label1.Text ‘没有则为空
sr.Dispose() '关闭流
End Sub'要提取什么东西用正则表达式最好
End Class
'******************************
'函数名:GetHtml
'作 用:读取其他网站页面内容
'参 数:Url是要读取的网站地址
'返回值:读取后的网站内容
'******************************
Function GetHtml(ByVal Url As String, ByVal bm As String) As String
Dim httpReq As System.Net.HttpWebRequest
Dim httpResp As System.Net.HttpWebResponse
Dim httpURL As New System.Uri(Url)
Dim respHTML As String = ""
httpReq = CType(WebRequest.Create(httpURL), HttpWebRequest)
httpReq.Method = "GET"
Try
httpResp = CType(httpReq.GetResponse(), HttpWebResponse)
httpReq.KeepAlive = False ' 获取或设置一个值,该值指示是否与 Internet资源建立持久连接。
Dim reader As StreamReader = New StreamReader(httpResp.GetResponseStream, System.Text.Encoding.GetEncoding(bm))
respHTML = reader.ReadToEnd() 'respHTML就是网页源代码
Catch
respHTML = "zhongduan"
End Try
Return respHTML
End Function