- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Excel 菜鸡玩网抓也疯狂 1
Excel 中国合伙人:网抓对于基本功不扎实的朋友来说 是比较困难的,尤其是自己去找那些教程看的时候,简直两 眼冒金星。
作为一个合伙人【秋名山老司机】 ,这时候就要站出来了, 今天就给你们带来一种思路相对简单粗暴的,可以实现基本 抓取功能的方法。就拿百度开刀吧!我们来抓这个,就抓上 证指数好了。
打开网页:
/stock/sh000001.html?from=aladin
gpc
如下图要抓取红色框中的数据;
见抓取动画。
上证指数:抓取动画(观看动画需稍等片刻) :抓取之后的 上证指数,见下图:是不是很好玩呢?其实, Excel 菜鸡玩 网抓也疯狂 +1 ,请大家在文章底部留言时 +1! Excel 中国 合伙人 下面进入网抓原理学习环节;
Excel 菜鸡玩网抓也疯狂 +1 !
01 下载网页,也就是我们手动打开网页,然后另存为 htm 02 用 Excel 打开 htm ,看下图。 03 然后选取需要的数据, 复制黏贴到新的 sheet 里,把原来的垃圾 sheet 删掉。最后
就能得到下图这样的表格。 Excel 中国合伙人 很简单是吧? 那么我们现在就通过代码来实现这些功能。 Private Declare Function URLDownloadToFile Lib urlmon Alias URLDownloadToFileA (ByVal pCaller As Long, _ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long 调 用下载用的 API, 如果 64 位 EXCEL 报错请自行百度 ,今天不 讲 APISub 抓()Dim Temp_Path$, Save_Path$ 定义路径参
数 Application.DisplayAlerts = False 眼不见为净与不刷新 语句 Application.ScreenUpdating = FalseTemp_Path = /stock/sh000001.html?from=aladin gpc 设置要抓的网站地址 Save_Path =
另存 .htm 另存的路径 URLDownloadToFile 0, Temp_Path, Save_Path, 0, 0 下载 文件并保存 ,具体参数请百度 ,反正对于这个我们只要地址和 保存路径就 OKWorkbooks.Open Save_Path 把下载的 HTM 打开 Call 整理 老司机呼叫整理代码 Application.Workbooks( 另存 .htm).SaveAs
另存 .xlsx, _ FileFormat:=xlOpenXMLWorkbook 另存这个 htm
文件 ,注意 saveas 的参数 ,请自行百度 ,这里我们用到的是 xlOpenXMLWorkbook, 把这个网页转成 xlsx, 不然是会有问
题的 Workbooks( 另存 .xlsx).Close 关闭处理好的文件 Kill Save_Path 删除那个 htm 文件 Application.ScreenUpdating = True 把眼不见为净与不刷新功能关掉 Application.DisplayAlerts = TrueEnd SubSub 整理 ()Dim
TempTemp = Range(A Range(A:A).Find( 上证指数
).Row :A Range(A:A).Find( 平家数 ).Row + 1) 我们 要的是上证指数那行和平家数之间的数据 ,用 find 去找出来 行号就行 , 并赋值给 tempWorkbooks( 另存 .htm).Sheets( 另 存 ).ActivateSheets.Add After:=ActiveSheet 激活表格并加
一个 sheet, 这样可以等下直接删掉这个表, 省得再删除图片、 框框什么的东西 For i = 1 To UBound(Temp, 1) 把存在 temp 的值赋值给新建的 sheet1 Workbooks( 另 存 .htm).Sheets(Sheet1).Cells(i, 1) = Temp(i, 1)NextWorkbooks( 另存 .htm).Sheets( 另存 ).Delete 删掉 原来那个表 ,回主程序 End SubEexcel 中国合伙人此方法并 非无敌的,我发表的目的只是为了拓展下大家的思维,让大 家离网抓更近,鼓励大家学习。
图文作者:冥月※辰风
文档评论(0)