Delphi IE HTML解析工具:GetHtml高效获取网页代码

版权申诉
0 下载量 121 浏览量 更新于2024-12-07 收藏 240KB RAR 举报
资源摘要信息: "GetHtml.rar_Gethtml_delphi ie html_gethtml.rar _html" ### 知识点概述 #### 1. Delphi语言与IE浏览器控件集成 Delphi是一种广泛使用的编程语言,它能够通过内置的组件和库与Windows操作系统进行深入交互。特别地,Delphi支持一种称为Internet Explorer(IE)浏览器控件的技术,允许开发者在自己的应用程序中嵌入并控制IE浏览器的功能。使用这种集成技术,可以实现诸如获取网页源代码等高级操作。 #### 2. 网页HTML内容的获取方法 网页HTML内容的获取通常指的是将网页的源代码读取到程序中,以便进行进一步的处理或分析。这在多种场景下都非常有用,例如:网络爬虫、内容摘要生成、网页结构分析、数据抓取等。Delphi可以通过IE浏览器控件实现这一功能,并且执行过程中尽量避免病毒和恶意软件的威胁。 #### 3. 查看HTTP头信息 HTTP头信息是服务器响应客户端请求时所发送的一些附加信息,它们不直接显示在网页内容中,但可以提供有关请求和响应的额外信息。例如,HTTP状态码、服务器类型、内容长度、缓存策略等。在Delphi中,可以利用IE浏览器控件或发送HTTP请求到服务器,并捕获返回的头信息,这对于分析网页行为和诊断问题非常关键。 #### 4. 避免IE中毒的策略 "IE中毒"通常指在使用IE浏览器过程中,由于恶意脚本、插件或下载的文件等原因,导致浏览器出现异常行为,如弹窗广告、主页劫持、恶意重定向等。在Delphi中通过IE浏览器控件获取网页内容时,采取一定的安全措施可以降低中毒的风险。例如,禁用JavaScript执行、设置浏览器安全级别、使用沙箱技术、限制文件下载和执行等。 #### 5. 压缩文件RAR格式 RAR是一种流行的文件压缩格式,它提供了高压缩率和数据完整性检查功能。在本例中,"GetHtml.rar"文件名暗示该文件可能包含了Delphi编写的源代码,或者是有关使用Delphi获取网页HTML内容的项目或工具。 #### 6. 源代码文件命名规则 文件名称列表中仅显示了"GetHtml"这一项,这表明压缩包中可能存在单个文件,或者包含与该功能相关的多个文件,但都围绕着同一个核心功能——获取网页HTML。通常情况下,Delphi源代码文件以.dpr作为主项目文件,而单元文件以.pas作为扩展名。 #### 7. 资源文件的使用场景 资源文件(如压缩包、DLL、OCX等)在软件开发中被广泛使用,以包含程序需要的附加数据。在本例中,"GetHtml.rar"可能包含了示例代码、帮助文档、库文件等资源,这些资源对于理解和使用Delphi获取网页HTML内容至关重要。 ### 结论 根据文件信息,我们可以得知此资源与Delphi编程语言和IE浏览器控件的集成使用相关。它旨在通过Delphi代码获取网页的HTML内容,同时查看和分析HTTP头信息。这在创建网络爬虫程序、进行网页数据抓取或维护网络安全时尤其有用。文件的压缩格式提示我们,在使用此资源时需要解压缩相关文件。文件名称列表说明了此资源可能包括单个核心文件或多个相关文件,它们共同构成了获取网页HTML的解决方案。此外,通过实施安全策略,可以有效避免在使用IE浏览器控件时遇到的安全风险。

import urllib.request import queue import threading import sys def bytes2human(n): """ >>> bytes2human(10000) 9K >>> bytes2human(100001221) 95M """ symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y') prefix = {} for i, s in enumerate(symbols): prefix[s] = 1 << (i + 1) * 10 for s in reversed(symbols): if n >= prefix[s]: value = int(float(n) / prefix[s]) return '%s%s' % (value, s) return '%sB' % n def gethtml(url, bak): try: urlbak = url + bak #print(urlbak) req = urllib.request.urlopen(urlbak, timeout=10) if req.code == 200: meta = req.info() file_size = int(meta.getheaders("Content-Length")[0]) m = bytes2human(file_size) content_type = meta.getheaders('Content-Type')[0].split(';')[0] if file_size == 0: return False if 'html' in content_type: return False else: print('%s ---- %s ---- %s ' % (urlbak, m, content_type)) return '%s ---- %s ---- %s ' % (urlbak, m, content_type) else: return False except: return False def writefile(fileName, c): f = open(fileName, "a") f.write(c + "\n") f.close() q = queue.Queue() def scanner(url): for i in bekadd(url): c = gethtml(url, i) if c != False: writefile("bak.txt", c) def worker(): while not q.empty(): url = q.get() scanner(url) q.task_done() def bekadd(url): listbak = ['/1.zip', '/1.rar', '/web.rar', '/web.zip', '/www.rar', '/www.zip', '/wwwroot.rar', '/wwwroot.zip', '/backup.rar', '/backup.zip', '/database.rar', '/database.zip', '/databak.rar', '/databak.zip', '/databackup.rar', '/databackup.zip', '/databack.zip', '/sql.rar', '/sql.zip'] wwwurl = url[url.find("http://") + 7:].rstrip("/ 这是什么代码

2023-06-12 上传