首先,我们引用一个Inet控件.这里有朋友要问,为什么用Inet而不用webbrowser,跟朋友们解释一下,用Inet直接读取源文件,而用webbrowser是先在此控件中打开网页,然后我们再去取网页代码,也就是多了一步解释,为了速度,我们就采用了Inet控件.
我们在窗体中加入Inet控件,和三个textbox控件,textbox1为标题,textbox2为简介,textbox3为内容.我比较懒,只是说明,所以就懒得给控件改名了,大家在设计程序时,一定要注意细节.比如textbox1改名为title这样自己看得比较方便.
Private Sub Form_Load()
Dim tempstr As String, astr As String, website As String
website = Inet1.OpenURL("http://news.163.com/06/1229/06/33G7FBBR000120GU.html") '下载此网页
astr = Trim(website) '定义astr内容为网页内容
'首先,我们要取这个网页的新闻标题.打开网页,查看源代码,我们可以发现<h3>至</h3>代码中间,就是我们所需要的新闻标题,而且在整个网页代码中,<h3>是唯一的,相当方便.所以我们开始下面的代码.
tempstr = "<h3>" '定义取值范围开始
pos = InStr(astr, tempstr) ''取tempstr后面的内容
astr = Mid(astr, pos + 4) '取pos开始数至第7位的内容(<title>就是7个值,<h3>就是4个值)
tempstr = "</h3>" '定义结束
pos = InStr(astr, tempstr) '重新获取
Text1.Text = Trim(Left(astr, pos - 1))'好了,我们要得到的新闻标题出来了.
'现在开始要取简介了,不详细讲了,和上面一样的道理.
tempstr = "<ul><li>" '定义取值范围开始
pos = InStr(astr, tempstr) ''取tempstr后面的内容
astr = Mid(astr, pos + 8) '取pos开始数至第7位的内容(<title>就是7个值,<h3>就是4个值)
tempstr = "</li></ul>" '定义结束
pos = InStr(astr, tempstr) '重新获取
Text2.Text = Trim(Left(astr, pos - 1))
'现在开始要取内容了,不详细讲了,和上面一样的道理.
tempstr = "</TBODY></TABLE></CENTER>" '定义取值范围开始"
pos = InStr(astr, tempstr) ''取tempstr后面的内容
astr = Mid(astr, pos + 25) '取pos开始数至第7位的内容(<title>就是7个值,<h3>就是4个值)
tempstr = "<a" '定义结束
pos = InStr(astr, tempstr) '重新获取
Text3.Text = Trim(Left(astr, pos - 1))
End Sub
好了,我们采集的第一步,就这么完成了.下节课,我们讲解如何根据ID,循环得到我们要采集的文章页面代码.比如我们从http://xxx.com/info.asp?id=1开始采集,一直采集到id=1000,就是设置一个数值,让其循环,从1至1000.
课程安排:1,初级页面内容获取 2,循环页面内容获取 3,将采集到的内容入库(sql或access) 4,讲解虚拟主机用户如何入库(直接边采集边发表)