ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何运用VBA批量下载CNTV网页新闻至TXT文本

如何运用VBA批量下载CNTV网页新闻至TXT文本

作者:绿色风 分类: 时间:2022-08-18 浏览:201
楼主
xmyjk
Q:如何运用VBA批量下载CNTV网页新闻至TXT文本?
提取http://news.cntv.cn/program/xwlb/20110101/103918.shtml系列网址的网页新闻。要求如下:
1、提取网页内的主标题和正文内容。

2、需可导入N个网页的文本合并成一个TXT文本输出,合并的顺序按网页的顺序从上到下排列,网页内容和网页内容之间空一行。

3、如果可能,请加一个网页地址批量输入窗口,这样可以一次性黏贴进多条网页地址,并批量建立超链接。


A:下载代码:
  1. Option Explicit
  2. Sub T()
  3. Dim tmp() As String, i As Integer, arr() As String, xmlhttp As Object, P As Long, getpage As String, TITLE As String
  4.         
  5. If Dir(ThisWorkbook.Path & "\XIAZAI.txt") <> "" Then Kill ThisWorkbook.Path & "\XIAZAI.txt"
  6. For P = 2 To [A65536].End(3).Row
  7.     Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
  8.     With xmlhttp
  9.         .Open "get", Trim(Cells(P, 2).Value), False
  10.         .send
  11.         tmp = Filter(Split(Replace(Replace(StrConv(.responsebody, vbUnicode, &H804), "<P><STRONG>", ""), "&nbsp;", ""), "</P>"), "<P>")
  12.         TITLE = Split(Split(StrConv(.responsebody, vbUnicode, &H804), "<h1 class=""b-tit"">")(1), "</h1>")(0)
  13.     End With
  14.     ReDim arr(UBound(tmp))
  15.     For i = 0 To UBound(arr)
  16.        arr(i) = Split(tmp(i), "<P>")(1)
  17.     Next
  18.     getpage = Replace(Replace(Replace(Join(arr, vbCrLf), "<BR>", ""), "<STRONG>", ""), "</STRONG>", "")
  19.     Erase tmp
  20.     Erase arr
  21.    
  22.     Open ThisWorkbook.Path & "\XIAZAI.txt" For Append As #1
  23.        Print #1, vbCrLf & vbCrLf
  24.        Print #1, TITLE
  25.        Print #1, getpage
  26.     Close #1
  27.    
  28.     getpage = ""
  29.     TITLE = ""
  30.    
  31. Next
  32. Set xmlhttp = Nothing
  33.    
  34. MsgBox "Ok"
  35. End Sub
导入网址代码:
  1. Private Sub CommandButton1_Click()
  2. Dim arr() As String
  3. If InStr(TextBox1.Text, vbCrLf) > 0 Then
  4.    arr = Split(TextBox1.Text, vbCrLf)
  5. Else
  6.    ReDim arr(0): arr(0) = TextBox1.Text
  7. End If
  8. For i = 0 To UBound(arr)
  9.     ActiveSheet.Hyperlinks.Add Anchor:=Cells(i + 2, 2), Address:=arr(i), TextToDisplay:=arr(i)
  10. Next
  11. End Sub


该帖已经同步到

网页内容另存TXT文本.rar
2楼
zxzxcl
感谢楼主分享
3楼
JOYARK1958
謝謝提供學習下載中

免责声明

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

评论列表
sitemap