以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 读取网页数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131932) |
-- 作者:dixiaxiaodan -- 发布时间:2019/3/9 15:30:00 -- 读取网页数据 我想要将网址:http://www.caacaad.org.cn/index.php?a=2&t=1的数据读取出来,但其中每个适航指令的发布日期并未在网页的表格里,而是在链接的pdf里,这种有办法读出来吗? 已经写好的代码如下,缺少读取pdf中发布日期的代码,求大神相助,谢谢。
[此贴子已经被作者于2019/3/9 15:30:51编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/3/9 16:00:00 -- 读取pdf里面的内容?http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=83249&skin=0 |
-- 作者:dixiaxiaodan -- 发布时间:2019/3/9 16:46:00 -- 有点蓝老师,我的意思是 此主题相关图片如下:捕获.png 每个文件的发布日期在标题栏链接的那个pdf里,这种有办法读取出来吗 |
-- 作者:有点蓝 -- 发布时间:2019/3/9 17:05:00 -- 这种是后台处理请求的,获取不了 |
-- 作者:有点甜 -- 发布时间:2019/3/10 10:58:00 -- 读取比如这样的地址 http://www.caacaad.org.cn/pdf.php?id=8623&a=d
然后把pdf文件下载来 http://www.foxtable.com/mobilehelp/scr/0160.htm
最后读取pdf的内容,如 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=83249&skin=0 |
-- 作者:dixiaxiaodan -- 发布时间:2019/3/11 23:25:00 -- 嗯嗯,谢谢各位老师,现在又有一个新的问题,我想把读取出来的数据中不符合要求的自动删掉,例如指令编号如果不包含A320,那么删除此行,我现在的代码如下,但就是删除行的操作报错。(因为指令编号字符数不定,感觉like无法满足要求) Dim web As New System.Windows.Forms.WebBrowser() Dim Cols() As String = { "指令编号","修正案号","标题","生效日期", "获取日期" } For pg As Integer = e.Form.Controls("textbox1").Value To e.Form.Controls("textbox2").Value \'Dim pg As Integer = 1 Dim wz As String = "http://www.caacaad.org.cn/index.php?a=2&t=1&page= "& pg & "&" web.Navigate( wz ) Do Until web.ReadyState = 4 Application.DoEvents Loop Dim elems As object = web.Document.GetElementById("table1").GetElementsByTagName("tr") Dim m As Integer = 0 Dim r As Integer = 0 For Each elem As object In elems r = r + 1 If r = elems.count Then Exit For End If Dim i As Integer = -1 m = m + 1 Dim tdelems As object = elem.GetElementsByTagName("td") If m > 1 Then \'因为网页的表格有标题,如果不判断,就会增加出一个空行 Tables("AD").AddNew End If For Each tdelem As object In tdelems i = i+1 If i < 3 Then Tables("AD").Current(Cols(i)) = tdelems(i).Innertext ElseIf i = 3 Then Tables("AD").Current(Cols(i)) = tdelems(5).Innertext ElseIf i = 4 Then Tables("AD").Current(Cols(i)) = Date.Today Exit For End If Next With Tables("AD") If Tables("AD").Current(Cols(0)) Like "???####A320" Then Else .Current.Delete() End If End With Next Next Tables("AD").save \' |
-- 作者:dixiaxiaodan -- 发布时间:2019/3/11 23:27:00 -- 而且,因为涉及下载pdf,我想先做判断,再取数据。例如 如果适航指令编号列包含A320,那么下载附件(下载数据这块我先自行研究,不麻烦老师们呢),读取数据,这样可以避免取数后再删除的操作。 |
-- 作者:有点甜 -- 发布时间:2019/3/12 9:31:00 -- 这个意思?
If Tables("AD").Current(Cols(0)) Like "*A320" Then
|
-- 作者:dixiaxiaodan -- 发布时间:2019/3/12 20:56:00 -- 是的,是这个意思,但这样写不行,程序会报错。 |
-- 作者:有点蓝 -- 发布时间:2019/3/12 21:36:00 -- 什么错? |