爬去网页离线数据

重命名文件

On Error Resume Next
    Dim dd As String
    Dim k%

‘‘提取文件夹名称
    dd = Dir(Sheets("Sheet1").Cells(1, 2) & "*", vbDirectory)
    Do
        dd = Dir
        ‘‘判断是否为文件夹
        If dd <> "" And InStr(1, dd, ".") = 0 Then
            Dim aa
            Set aa = CreateObject("Scripting.FileSystemObject")
            k = k + 1
            ‘‘文件夹重命名
            aa.MoveFolder Sheets("Sheet1").Cells(1, 2) & dd, Sheets("Sheet1").Cells(1, 2) & "\改名" & k
        End If

Loop Until Len(dd) = 0
    Set aa = Nothing

‘爬去数据

Dim arr, brr, i%, s$, html, Ta, n%, j%, str$, Url$, Db, tr, td
    tempPath = Cells(1, 2)
    If Mid(tempPath, Len(tempPath), 1) <> "\" Then
        tempPath = tempPath & "\"
    End If
    If Dir(tempPath, vbDirectory) = "" Then
        MsgBox "错误!需要处理的文件目录不存在 " & tempPath
        Exit Sub
    End If
    Dim fn
    fn = Dir(tempPath & "*.htm")
    Do While fn <> ""
        Set html = CreateObject("htmlfile")
        dataTxt = GetCode("UTF-8", tempPath & fn) ‘tempPath & fn
        html.body.innerhtml = dataTxt
        If (InStr(dataTxt, "tooltip-title") = 0) Then
            oneclick dataTxt, onenum
            onenum = onenum + 1
        Else
           twoclick dataTxt, twonum
           twonum = twonum + 1
        End If
      fn = Dir()
    Loop

‘table数据

Set Db = html.all.tags("table")(3)
         i = 0: j = 0
         For Each tr In Db.Rows
            m = 0
            i = i + 1: j = 0
            If i > 1 Then
                For Each td In tr.Cells
                    m = m + 1
                    Sheets("Sheet3").Cells(m, pagenum) = Replace(td.innerText, Chr(10) & Chr(10), Chr(10))
                Next
            End If

    pagenum = pagenum + 1

Next

‘页面编码

Public Function GetCode(CodeBase, Url) ‘第一个参数是设置编码方式(GB2312或UTF-8)第二个参数是地址.
    Dim xmlHTTP1
    Set xmlHTTP1 = CreateObject("Microsoft.XMLHTTP")
    xmlHTTP1.Open "get", Url, True
    xmlHTTP1.send
    While xmlHTTP1.readyState <> 4
    DoEvents
    Wend
    GetCode = xmlHTTP1.responseBody
    If CStr(GetCode) <> "" Then GetCode = BytesToBstr(GetCode, CodeBase)
    Set xmlHTTP1 = Nothing
End Function

Public Function BytesToBstr(strBody, CodeBase)
    Dim ObjStream
    Set ObjStream = CreateObject("Adodb.Stream")
    With ObjStream
    .Type = 1
    .Mode = 3
    .Open
    .write strBody
    .Position = 0
    .Type = 2
    .Charset = CodeBase
    BytesToBstr = .ReadText
    .Close
    End With
    Set ObjStream = Nothing
End Function

原文地址:https://www.cnblogs.com/bignine/p/10090542.html

时间: 2024-10-10 09:11:01

爬去网页离线数据的相关文章

爬虫rewquests爬去网页乱码问题

requests在爬取网页时候时候中文显示乱码 import requests url = 'http://www.neihan8.com/wenzi/index_2.html' res = requests.get(url)res.encoding #获取res的编码格式res.headers #获取Content-Type内容res.apparent_encoding #获取网页正确的编码格式 html = res.text# 返回的结果是处理过的Unicode类型的数据 print(res

利用Python实现爬去彩票网站数据&amp;mdash;&amp;mdash;小样

写这篇文章纯属自娱自乐. 主要是近期在自学如何利用Python解决IT运维的一些问题时,总是不得其门而入,为了增加学习兴趣,就想通过完成一个小小有趣的爬虫程序激励下自己,同时也把这次经历跟各位道友分享下. Technorati Tags: Python,爬网,彩票,数据,夏明亮 首先申明,本人不是专职coding的,所以,代码部分如果不符合专业审美,还请多多包涵:俺就是纯粹以实习那目标为基础的小白一枚:思路为先,抛砖引玉~ 步骤一:利用搜索引擎找到你需要的信息的网页资源 1. 打开百度搜索"彩票

scrapy 爬去网页(1)

第一次爬去https://segmentfault.com/t/python?type=newest&page=1 首先定义爬去的字段: class CnblogsItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() title = scrapy.Field() link = scrapy.Field() desc = scrapy.Field() listUrl = scr

python 爬取网页简单数据---以及详细解释用法

一.准备工作(找到所需网站,获取请求头,并用到请求头) 找到所需爬取的网站(这里举拉勾网的一些静态数据的获取)----------- https://www.lagou.com/zhaopin/Python/ 请求头的作用:模拟真实用户进入网站浏览数据-----------headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75

使用进程池模拟多进程爬取url获取数据,使用进程绑定的回调函数去处理数据

1 # 使用requests请求网页,爬取网页的内容 2 3 # 模拟使用进程池模拟多进程爬取网页获取数据,使用进程绑定的回调函数去处理数据 4 5 import requests 6 from multiprocessing import Pool 7 8 # response = requests.get('http://www.baidu.com') # 访问网页获取网页内容,得到一个网页内容的结果对象<Response [200]>这个200是一个状态码,200表示网页正常的返回,40

C# 爬取网页上的数据

最近工作中需求定时爬取不同城市每天的温度.其实就是通过编程的方法去抓取不同网站网页进行分析筛选的过程..NET提供了很多类去访问并获得远程网页的数据,比如WebClient类和HttpWebRequest类.这些类对于利用HTTP去访问远端的网页并且下载下来是很有用的,但在对于所下载下来的HTML的解析能力方面,则显得功能很弱了.推荐一个开源的组件HTML Agility Pack(http://htmlagilitypack.codeplex.com/),它的设计目标是尽可能简化对HTML文档

Android Jsoup 爬取网页数据

一不小心一个月又过去了,其实最近还是小忙小忙的,废话不多说,直接进入今天的主题吧. Jsoup – Java HTML Parser, with best of DOM, CSS, and jquery.,看这个介绍就知道,这个就是方便咱们 Java 和Android 来解析 HTML 的. HTML 标签 要去爬别人的 HTML 标签的话,首先你肯定得有一定的 HTML 的基础知识吧.比如说常用的标签,标签的相关属性,这个就不多说了,有相关问题都可以在 www.w3school.com.cn

java如果去请求一个网页的数据

我们可以通过在java程序中模拟浏览器一样,把数据抓下来,具体方法是在java程序中set header和cookie,下面是一个例子: public class NetConnection { public static final int MAX_HOTWORDS_FILE_SIZE = 256 * 1024; public static void main(String[] args) { send("http://tuan.aibang.com/shenzhen/new_2033549.

python之爬取网页数据总结(一)

今天尝试使用python,爬取网页数据.因为python是新安装好的,所以要正常运行爬取数据的代码需要提前安装插件.分别为requests    Beautifulsoup4   lxml  三个插件. 因为配置了环境变量,可以cmd命令直接安装.假如电脑上有两个版本的python,建议进入到目录安装. 安装的命令为 pip install requests(Beautifulsoup4   /lxml  ) 三条分别执行. 安装结束,可以尝试网上一些简单的例子,明白了解 Beautifulso