Foxtable(狐表)用户栏目专家坐堂 → 关于渲染类的网站要用什么方法爬取数据。


  共有2675人关注过本帖树形打印复制链接

主题:关于渲染类的网站要用什么方法爬取数据。

帅哥哟,离线,有人找我吗?
ap9709130
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
关于渲染类的网站要用什么方法爬取数据。  发帖心情 Post By:2020/9/3 12:21:00 [只看该作者]

 如题。

     老师现在很多网站都是渲染数据的,这类的网站有什么好方法爬数据吗?

比如:http://app1.nmpa.gov.cn/data_nmpa/face3/base.jsp?tableId=68&tableName=TABLE68&title=%B9%FA%B2%FA%CC%D8%CA%E2%D3%C3%CD%BE%BB%AF%D7%B1%C6%B7&bcId=152904508268669766289794835880&CbSlDlH0=qAqfqarg8ofg8ofg8id8ra.vTA45PQPDxQmnEeHqGtqqqoG


图片点击可在新窗口打开查看此主题相关图片如下:a.jpg
图片点击可在新窗口打开查看


有没有办法把这 4万多的数据弄出来呢?多谢!

 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2020/9/6 22:17:00 [只看该作者]

 老师

   经过这几天的研究,基本把这个网站的内容全部都能弄下来了.但现在的问题就是卡在翻页上面,麻烦老师看看我的代码,明明翻页成功的了,但为什么网页的信息还是上一页的? 代码如下:

Dim url As String = "http://app1.nmpa.gov.cn/data_nmpa/face3/base.jsp?tableId=68&tableName=TABLE68&title=%E5%9B%BD%E4%BA%A7%E5%8C%96%E5%A6%86%E5%93%81&bcId=138009396676753955941050804482&CbSlDlH0=qAkIkGkuZdHuZdHuZ6RIDC.kpMdjYOsCXVXeBm1Aq69qqHW"
Dim web As New System.Windows.Forms.WebBrowser
web.ScriptErrorsSuppressed = True
web.Navigate(url)
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("content").GetElementsByTagName("a").count > 0
    Application.DoEvents
Loop
Dim ys As Integer = web.Document.GetElementById("goInt").GetAttribute("value")  '第一页

For i As Integer = 0 To web.Document.GetElementById("content").GetElementsByTagName("a").count - 1
    If web.Document.GetElementById("content").GetElementsByTagName("a")(i).innerText IsNot Nothing Then
        Dim zd As String = web.Document.GetElementById("content").GetElementsByTagName("a")(i).innerText
        zd = zd.trim()
        Output.show(zd) '需要的内容
    End If
Next


web.Document.GetElementById("goInt").SetAttribute("Value",2) '设成第二页
web.Document.GetElementById("content").GetElementsByTagName("table")(4).GetElementsByTagName("tr")(0).GetElementsByTagName("td")(6).InvokeMember("Click") '点击去指定的页
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("goInt").GetAttribute("value") <> ys
    Output.show(web.Document.GetElementsByTagName("a")(73).innerText)
    Output.show(web.Document.GetElementById("goInt").GetAttribute("value"))
    Application.DoEvents
Loop
Output.show(web.Document.GetElementById("goInt").GetAttribute("value")) '看当前的页数

For i As Integer = 0 To web.Document.GetElementById("content").GetElementsByTagName("a").count - 1
    If web.Document.GetElementById("content").GetElementsByTagName("a")(i).innerText IsNot Nothing Then
        Dim zd As String = web.Document.GetElementById("content").GetElementsByTagName("a")(i).innerText
        zd = zd.trim()
        Output.show(zd) '需要的内容
    End If
Next

我output.show 出的页数 也是第2页,说明翻页成功了,但为什么两次网页上的内容是一样的? 请老师教一下 要怎么才能实现真的翻页? 多谢!

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110763 积分:563747 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/6 22:23:00 [只看该作者]

这里不提供网页的数据分析和抓取技术支持,请自行学习解决

 回到顶部
帅哥哟,离线,有人找我吗?
菲舍尔
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:509 积分:3547 威望:0 精华:3 注册:2012/11/13 15:49:00
  发帖心情 Post By:2020/9/7 10:01:00 [只看该作者]

不能直接设网页元素的属性,要去执行一次下一页按钮的代码,网页才会更新

 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1279 积分:7953 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2020/9/7 11:06:00 [只看该作者]

推荐使用Python的Scrapy技术去做爬虫。术业有专攻,竹篮别干打水活,事倍功半

 回到顶部