代理IP是做爬虫的是常常用到的东西,它可以让我们规避被爬虫,服务器上的反爬虫机制;还有一个方法也可以规避那就是随机改变UA,当然两种方式一起用那是效果最佳的; ❝好了话不多说,直接上代码,代码上已经详细注释了...strText End With Exit Function er: 取得网页源码 = "查询出错啦:" & Err.Description End Function Sub 解析网页源码...("IP地址池") sht.Range("A1:AA65536").ClearContents ''测试取5页数据 For p = 1 To 5 ''解析...html Dim xmldocstr As String: xmldocstr = 取得网页源码(p) Dim HTMLDoc As Object, TDElements...If Len(xmldocstr) < 100 Then Exit Sub HTMLDoc.body.innerhtml = xmldocstr ''定位html
在VBA解析中已经介绍,VBAProject无论是03版本的还是07版本的,都是一个数据流。 在03版本中它就是在文件中,03版本的Office就是一个复合文档。...所以,VBAProject就是一个特殊的复合文档,解析VBAProject就是解析一个复合文档。...在解析的时候,可以进一步去判断是否有dir流,这样就能够知道是不是一个VBAProject,而且也能够判断是03版本的还是07版本的: 新建一个类CVBAProject: Private cf As CCompoundFile...\dir", b) If VBA.Len(ret) Then '继续尝试03版本的路径 PrePath = "Root Entry\_VBA_PROJECT_CUR...类中,具体查看VBA解析复合文档相关文章。
如果你收到过一些这样的Excel文件,文件里有VBA代码,实现了很好的功能,可是作者却对VBA工程进行了加密,你可能会非常希望查看到里面的VBA代码。...会想到的最直接的办法当然就是要到密码,可这个一般做不到,这个时候有什么办法能够查看VBA代码呢? 前面介绍的提取模块代码可以做到,这里再介绍一种直接清除密码的功能。...所以,知道了这样能够清除密码,我们要做的只是改写一个复合文档的数据流就可以了: '清除vba工程密码 '清除CMG=" | DPB=" | GC=" '清除VBA工程密码 'Return 返回出错信息...(strSrc, arr(i)) If index Then flag = True index2 = VBA.InStr(index,...'标准的api hook过程之四:组装API入口的新代码 'HookBytes组成如下汇编 'push MyDialogBoxParam的地址
什么是VBAProject 在每一个带有VBA代码的文件里,都会有一个VBAProject,在VBA编辑器的工程资源窗口可以看到: ?...每个文件都有一个叫做VBAProject(默认名称,可以修改)的东西。 我们在编写VBA代码的时候,就是通过这里来点击添加模块、编写代码的。...MMain是模块的名称,其他一些也会视具体的文件不相同,但主要的VBA\dir、PROJECTwm、PROJECT等是一定会有的。...除具体的模块信息差异之外,VBA相关的信息和07版本相比,多了一个_VBA_PROJECT_CUR路径。...所以,VBAProject就是一个在Excel文件中的数据流,这个数据流记录了VBA相关的信息。 获取VBAProject结构可以看VBA解析复合文档相关文章。
在VBAProject中,dir流保存了一些VBA代码的重要信息,所以解析VBAProject的时候一并进行了解析。 dir流的结构请参考官方文档的2.3.4.2 dir Stream。...这里主要解析VBA模块的3个信息: Public Enum ModuleTypeEnum ProceduralModule = &H21 ClassModule = &H22 'document...Type ModuleInfo SName As String Offset As Long IType As ModuleTypeEnum End Type Offset:VBA...代码在具体的模块流中起始的位置。...= &H0) p = p + 1 If p > iLen - 1 Then GetModuleInfo = "DIR流:解析
实现的功能 01 Parse '解析VBAProject 'ir 一个实现了IReadWrite接口的类 'Return 返回出错信息 Function Parse(ir As...02 GetModuleInfo '类的属性:获取模块信息 Property Get GetModuleInfo() As ModuleInfo() 返回结构体: Public Type ModuleInfo...03 GetModuleCode '读取某个模块的代码 'ModuleName 模块的名称 'StrCode 返回模块的代码 'Return 返回出错信息 Function GetModuleCode...04 HideModule、UnHideModule '隐藏某个模块:在VBA工程窗口无法查看 'ModuleName 模块的名称 'Return 返回出错信息 Function HideModule...04 UnProtectProject '清除VBA工程密码' Return 返回出错信息 Function UnProtectProject() As String ?
2007版本以上的Office文件,如果编写了VBA代码,在文件的压缩包里,会有个vbaProject.bin文件,也是使用复合文档结构来存储的。...01 深入了解Excel的文件结构 解析复合文档,能够更加深入理解Excel的文件结构,虽然2007版本以上的Excel已经 换成了xml标记语言存储,但是VBA代码相关的vbaProject.bin...02 直接读取Excel VBA数据 如果想不打开Excel文件来读取Excel的数据,一般使用ADO技术就能做到。...但是如果想要直接获取VBA代码,就只能通过解析文件结构获取,通过解析复合文档,解析出模块的数据流,再进一步进行解析就可以。...03 实现一些特殊功能 VBA工程密码破解 VBA模块隐藏 主要参考文章: http://club.excelhome.net/thread-227502-1-1.html
本小程序只适用于,解析TXT文件中保存的发票扫码结果数据! 活不多说!...更多精彩内容请关注公众号:" ''状态栏 End Sub (左右滑动查看完整代码) ''发票数据解析 Sub FP_DATA(Control As IRibbonControl...str) ''遍历数组 Dim arr() As String, tmp As String tmp = str(I) ''取数组中的元素...NumberFormatLocal = "0.00_);[红色](0.00)" ''设置G到H列为数字格式病保留两位小数点 End With End Sub (左右滑动查看完整代码) 第一篇文章的vba
有了FAT数组的信息,就可以继续解析目录信息和MiniFAT。...01 解析目录 目录信息存放的才是复合文档中的真正数据的一些信息,也只有通过目录信息才能正确读取到数据流: Private Type CFDir EntryName(63) As Byte...'这个不是结构体的字段 StrDirName As String '在文件中的偏移位置 lOffset As Long End Type '解析目录 Private Function...02 解析MiniFAT MiniFAT是不一定会存在的,这个主要是看目录信息中的文件StreamSize有没有小于Header结构中的MiniStreamSize,有的情况下才会出现MiniFAT。...cf.MiniFAT) Then Exit For Next l_SID = cf.FAT(l_SID) Next End Function 到此复合文档的结构就解析完成了
通过前面对复合文档结构的分析,解析起来问题就不大了。...01 解析Header结构 Header结构一定是在文件的最开始处,所以直接一个一个字段的读取就行了: Private Type CFHeader Signature(7) As Byte...cf.lSectorSize = 2 ^ cf.Header.SectorShift cf.longNumPerSector = cf.lSectorSize \ 4 End Function 解析...4个字节存储再下一个的SID Loop While flag End Function 03 解析FAT数组 通过DIFAT来解析FAT数组,FAT数组是构建扇区链表的重要数据信息: '读取扇区配置表...,就可以去解析目录信息和MiniSAT了,因为目录信息和MiniSAT的数据是很有可能需要多个扇区储存的,必然需要扇区链接的信息,所以FAT数组必须要先进行解析。
模块的隐藏看起来好像好高深,其实原理和前面的清除VBAProject工程密码的原理是一样的,只需要改写PROJECT数据流。...不过需要注意的是,类模块不能隐藏,另外还必需要有一个可见的模块,实现代码: '隐藏某个模块:在VBA工程窗口无法查看 'ModuleName 模块的名称 'Return 返回出错信息 Function...(strSrc, "Module=" & ModuleName & vbNewLine, "") b = VBA.StrConv(strSrc, vbFromUnicode)...ret = cf.ReWriteStream(PrePath & "PROJECT", b) If VBA.Len(ret) Then HideModule = ret...Exit Function End If End Function '取消隐藏某个模块 'ModuleName 模块的名称 'Return 返回出错信息 Function
Markdown文件支持HTML标签,今天在编辑Markdown文档时,我希望嵌入一个带有图片的链接,因此需要使用HTML的 标签。...在Web开发的领域中,我们经常听到超链接(hyperlink)这个术语,而HTML中的 标签则是创造这种连接的关键。...html-a.jpg 标签的基本结构 在HTML中,标签用于创建超链接,其基本结构如下: 链接文本 href属性: 指定链接的目标地址。...无论是链接到外部资源、内部页面,还是通过JavaScript实现交互,都让我们更好地理解并利用这个简单而强大的HTML元素。在构建网页时,善用标签,让连接之美在你的网站中闪耀。...在这个角落里,我将分享一些生活中的琐碎小事,或许是上班途中的一张照片,又或者是追剧过程中的一个情节,抑或是朋友之间的闲聊,家庭中的某个不经意的瞬间,又或者是书籍中的一段摘抄…… 总而言之,这个模块与技术无关
引入相关模块 import json import requests from bs4 import BeautifulSoup url = "http://news.qq.com/" # 请求腾讯新闻的URL...,获取其text文本 wbdata = requests.get(url).text # 对获取到的文本进行解析 soup = BeautifulSoup(wbdata,'lxml') # 从解析文件中通过...select选择器定位指定的元素,返回一个列表 news_titles = soup.select("div.text > em.f14 > a.linkto") #对返回的列表进行遍历 for n
实现功能: 01 Parse '解析复合文档,获取复合文档文件信息'ir 一个实现了IReadWrite接口的类'Return 返回出错信息Function Parse(ir As...02 GetStream '读取某个数据流'dir_name 需要读取的文件名称,是复合文档中的文件名称'RetBytes 返回的数据Byte数组'Return 返回出错信息Function...dir_name As String, RetBytes() As Byte) As String 03 GetAllStream '获取所有Stream,并保存为文件'SavePath 保存文件的路径...04 ReWriteStream '改写数据流'dir_name 需要被改写的文件名称,是复合文档中的文件名称'WriteBytes 需要改写为的数据Byte数组'Return 返回出错信息
System.out.println(doc.getElementsMatchingText("搜索设置")); // //System.out.println(doc.attr("href"));//得到属性的值
在VBAProject中,dir流以及VBA模块代码流都使用了run length encoding的算法进行压缩。...,表示块中的字节数和块的格式。...Offset = BitMoveRightInt(temp1, VBA.CLng(temp2)) + 1 End Function Private Function copyTokenHelp(LengthMask...,要向上取整 BitCount = VBA.CInt(Application.WorksheetFunction.RoundUp(Math.Log(difference) / Math.Log(...0xFFFF RIGHT SHIFT BY BitCount LengthMask = &HFFFF LengthMask = BitMoveRightInt(LengthMask, VBA.CLng
通过前面的文章能够知道,每一个模块的代码,在VBAProject中也就是一个数据流,这个数据流经过了run length encoding的算法进行压缩。...前面介绍的是自己使用VBA代码来解压缩,其实也有现成的API RtlDecompressBuffer可以使用,具体用法可以网上找找。 所以,只要能找到模块的数据流,然后进行解压缩就可以还原模块的代码。...模块的数据流也就是在复合文档中读取一个数据流,另外要注意的是,这样读取出来的模块数据流并不都是我们写的VBA代码,还需要结合解析dir流时候得到的模块信息进行截取,再进行解压缩: '读取某个模块的代码...= cf.GetStream(PrePath & "VBA\" & ModuleName, b) If VBA.Len(ret) Then GetModuleCode = ret...Exit Function End If 'vba代码只是后面的一部分 Dim bCode() As Byte Dim moduleIndex
前言 iOS中,当我们需要解析xml或html时,我们可以使用libxml2来进行解析。但由于libxml2的api设计比较繁琐,使用起来并不方便。...Hpple则是基于libxml2的oc库,使 我们可以用其方便地进行xml或html的解析。 使用方法 我们先来看看,我们需要解析的是什么样的对象。...htmlString = @"Hello world"; 这是一段普通的html...,设置了一段文字的字体大小和颜色。...image.png 我们在解析这一段html时,希望得到的,是它的标签名,内容和属性。
在前面提到过,Thumbs.db文件也是一个复合文档,里面存储的数据流就是图片的缩略图。...CCompoundFile Set cf = New CCompoundFile Dim ret As String ret = cf.Parse(f) If VBA.Len...UBound(fs) If fs(i) "Root Entry" Then ret = cf.GetStream(fs(i), b) If VBA.Len...Function ByteToFile(file_name As String, b() As Byte) Dim iFreefile As Integer iFreefile = VBA.FreeFile...,我的电脑是64位的,所以数据流前面3个整形是3×8=24个Byte,如果是32位的,应该是3×4=12个Byte,这个不是缩略图的数据,需要跳过。
将Jsuop的Jar包引入项目中,指定好唯一标示,再使用选择器,就可以将数据解析出来,最近接触到了PHP,就像使用PHP解析个新闻来玩玩!...最后我通过Google搜索引擎,搜索到一篇文章,文章里介绍几种调用PHP文件来解析HTML的方法,真是天助我也!...昨天我使用Simple-Html-Dom.php文件,解析糗事百科首页的糗事,并定时,15分钟获取一次!...最后我通过Google搜索引擎,搜索到一篇文章,文章里介绍几种调用PHP文件来解析HTML的方法,真是天助我也!...昨天我使用Simple-Html-Dom.php文件,解析糗事百科首页的糗事,并定时,15分钟获取一次!
领取专属 10元无门槛券
手把手带您无忧上云