ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何提取证监会网站的保荐人名单以及所有保荐人的简历

如何提取证监会网站的保荐人名单以及所有保荐人的简历

作者:绿色风 分类: 时间:2022-08-17 浏览:90
楼主
xmyjk
Q:如何提取证监会网站的保荐人名单以及所有保荐人的简历
http://www.csrc.gov.cn/pub/newsite/fxb/baxyjg/bjdbrmd/

A:首先,运用抓包工具,点击翻页:

 
可以发现,里面有个page_size属性,我们把他改成2500,并把整个参数带到URL后面。
http://202.106.183.110/csrc_bjr/csrc/wwweb/front_list.esp?begin_num=1&page_size=2500&user_name=&user_org=&currentpage=1
可以得到所有的页面的整个数据。呵呵,这个小技巧,后面就方便很多了。
提取目录后,在根据URL访问每个条目,这样就就可以提取每份简历。
  1. Option Explicit
  2. Sub test()
  3.     Dim tmp() As String, i As Integer, arr() As String, xmlhttp As Object, N As Long

  4.     [a1].CurrentRegion.Offset(1).Clear
  5.     Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
  6.     With xmlhttp
  7.         .Open "get", "http://202.106.183.110/csrc_bjr/csrc/wwweb/front_list.esp?begin_num=1&page_size=2500&user_name=&user_org=&currentpage=1", False '获取大目录
  8.         .send
  9.         tmp = Filter(Split(Replace(.responsetext, "</a>", ""), "</td>"), "<td align=""center""") '将每个条目切出来
  10.     End With
  11.     ReDim arr(UBound(tmp) \ 6, 6) '切入数组
  12.     For i = 0 To UBound(tmp)
  13.         arr(i \ 6, i Mod 6) = Split(tmp(i), ">")(UBound(Split(tmp(i), ">"))) '整理文本
  14.         If i Mod 6 = 1 Then arr(i \ 6, 6) = "http://202.106.183.110/csrc_bjr/front_detail.esp?user_id=" & Split(Split(tmp(i), "viewUser('")(1), "','")(0)
  15.     Next
  16.     [a2].Resize(UBound(arr) + 1, UBound(arr, 2) + 1) = arr '输入目录
  17.     Erase tmp
  18.     Erase arr
  19.     Set xmlhttp = Nothing

  20.     MsgBox "Ok"
  21. End Sub

  22. Sub testt()
  23.     Dim p&, arr, d As New Dictionary
  24.     arr = Range([c2], [g65536].End(3)).Value
  25.     For p = 1 To UBound(arr) '历遍目录
  26.         If Not d.Exists(Left(arr(p, 1), 4)) Then d.Add Left(arr(p, 1), 4), 0: Sheets.Add(, Sheets(Sheets.Count)).Select
  27.         ActiveSheet.Name = Left(arr(p, 1), 4) '当公司名称不存在,则新建表
  28.         With ActiveSheet.QueryTables.Add(Connection:="URL;" & arr(p, 5), Destination:=[a65536].End(3).Offset(2)) '依据URL导入简历
  29.             .BackgroundQuery = True
  30.             .WebSelectionType = xlSpecifiedTables
  31.             .WebTables = "3,5"
  32.             .Refresh BackgroundQuery:=False
  33.         End With
  34.         ActiveSheet.UsedRange.QueryTable.Delete
  35.     Next
  36. End Sub

保荐人下载.zip
2楼
xyf2210
强,学习
3楼
mmice
还在学习中,相当大一部分看不明白。希望BZ写代码每条都注释下。
4楼
mmice
现提两个问题
可以发现,里面有个page_size属性,我们把他改成2500,并把整个参数带到URL后面。
-----------
这儿为啥改2500

这里的抓包工具又是哪个,好象不是老师书上介绍的fidder2吧
5楼
芐雨
强大
6楼
老糊涂
学习中

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap