请问如何写提取网页表格中数据的正则表达式

牛记图文 2018-01-28 02:18:37
请问怎么写网页http://kj.13322.com/lhc_history_d2018_0.html中提取表格中全部数据的正则表达式?包含开奖号码、生肖、和值等全部数据。
...全文
817 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
X-i-n 2018-02-02
  • 打赏
  • 举报
回复
这个网页只有一张table,所有需要的数据都在tr里。排除掉标题行(单元格数量小于15的行)以后,取出剩下所有行就行 row.Children取的是该行所有td的集合,用for each循环遍历一下。 有的td是纯文本,有的td带了p,前面一种直接取innerText,后面一种遍历每个p并取出p的文本拼成string返回。
element.GetElementsByTagName("p").Cast(Of HtmlElement).Select(Function(ele) ele.InnerText).ToArray()
element.GetElementsByTagName("p")得到的是一个HtmlElementCollection集合,用Cast转为IEnumerable<HtmlElement>,再用Select方法对成员做一次转换,将HtmlElement转为对应的InnerText,最后用空格join一下。这个是LINQ的写法。也可以用For Each去实现相同的效果,本质上一样。
牛记图文 2018-02-02
  • 打赏
  • 举报
回复
谢谢您的指点,以后有问题再请教
牛记图文 2018-02-02
  • 打赏
  • 举报
回复
谢谢,不过IIf(element.Children.Count = 0, element.InnerText, String.Join(" ", element.GetElementsByTagName("p"). Cast(Of HtmlElement). Select(Function(ele) ele.InnerText).ToArray() )) + " ")有点看不懂,请指点一下
X-i-n 2018-01-30
  • 打赏
  • 举报
回复
拖个webbrowser和一个Button
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        For Each row As HtmlElement In browser.Document.GetElementsByTagName("tr")
            If row.Children.Count = 15 Then
                For Each element As HtmlElement In row.Children
                    txtLog.AppendText(
                        IIf(element.Children.Count = 0,
                            element.InnerText,
                            String.Join(" ",
                                        element.GetElementsByTagName("p").
                                        Cast(Of HtmlElement).
                                        Select(Function(ele) ele.InnerText).ToArray()
                                        )) + " ")
                Next
                txtLog.AppendText(vbCrLf)
            End If
        Next
    End Sub
牛记图文 2018-01-29
  • 打赏
  • 举报
回复
在vb.net中不知道怎么写啊
脆皮大雪糕 2018-01-29
  • 打赏
  • 举报
回复
抛开技术层面,劝你别玩这个,不管是在里头挖金还是在旁边卖水。
脆皮大雪糕 2018-01-29
  • 打赏
  • 举报
回复
直接在document中找到这个表格对象,然后取其innertext
牛记图文 2018-01-29
  • 打赏
  • 举报
回复
请问怎么写网页http://kj.13322.com/lhc_history_d2018_0.html中提取表格中全部数据的正则表达式?包含开奖号码、生肖、和值等全部数据。取出来的结果是: 2018008 2018-01-27 45 26 17 43 33 08 40 马 212 大分 双数 马 家禽 双 大 红 土 4 0 2018007 2018-01-25 47 14 40 03 36 23 20 虎 183 大分 单数 虎 野兽 双 小 蓝 土 2 0 2018006 2018-01-23 41 27 32 37 20 03 44 虎 204 大分 双数 虎 野兽 双 大 绿 火 4 4 2018005 2018-01-20 05 23 27 24 02 34 08 虎 123 小分 单数 虎 野兽 双 小 红 水 0 8 2018004 2018-01-16 27 37 02 36 21 30 04 马 157 小分 单数 马 家禽 双 小 蓝 火 0 4 2018003 2018-01-11 47 49 31 29 03 43 19 兔 221 大分 单数 兔 野兽 单 小 红 火 1 9 2018002 2018-01-06 01 36 31 49 12 21 23 猪 173 小分 单数 猪 家禽 单 小 红 水 2 3 2018001 2018-01-02 28 42 18 39 12 35 36 狗 210 大分 双数 狗 家禽 双 大 蓝 金 3 6
X-i-n 2018-01-28
  • 打赏
  • 举报
回复
用正则反而麻烦。 $("#trend_table")[0].rows[2].innerText直接取指定行的innerText然后split就行。

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧