作者:暴力的西红柿 | 来源:互联网 | 2022-03-06 17:18
昨天在采集某一个网站的时候,采集程序出错了。
是自写的采集程序。
经过搜索以后,查到一些没有用的结果,后来发现,用Msxml2.ServerXMLHTTP替换掉Msxml2.XMLHTTP,问题成功解决。
以下是分析排错过程。
老是采集一段时间就挂了,指定资源下载失败,或者拒绝访问。
后来直接全部是拒绝访问。
一开始,认为,对方服务器做了防采集设置,比如有时间限制之类的。
于是更改程序,原先是直接获取列表页,然后持续循环获得文章列表。改了采集文件结构,
原来是就一个文件,类,数据库连接,数据处理全部在一个文件里,再采集某一篇文章的时候,后天加了一个时间循环。等待5秒的。代码如下
代码如下:
sTime=Timer() dTime=Timer()-sTime do while dTime <5 dTime=Timer()-sTime loop
确实是能等待5秒钟,但是很快就发现,这个循环太过消耗CPU资源,一到这个循环,CPU占用率持续100%,于是马上放弃这个方案。
另做了一个文件。只根据文章URL抓取文章的相关内容并写入数据库,写入完毕后输出自动跳转代码。
核心思想就是用了
这是一个定时跳转的代码,相信大家都很熟悉。
我的原理做法就是,用一开始的文件,抓取所有的文章连接地址,以及相关导航代码,保存到数据库中。
然后用新做的抓取文章内容的程序,读取数据库记录,逐条进行采集。
数据库记录中有一个flag标记,tinyint类型,默认是0,采集成功更新为1,失败更新为2
这样,每次从数据库中读取一条未采集的数据,也就是读取flag=0的数据,进行操作。操作完毕等待5秒跳转到自身。
想法跟思路是很好的。文章URL数据库也采集准备好了,一上采集文章具体内容,又出错了。一直是msxml3.dll 错误 '80070005'
拒绝访问的错误。
那个郁闷,想开一晚上机器,自动采集,破灭。
今天早上来搜索查询资料,查询到的绝大多数都是无用信息。
基本上都是说权限问题。
msxml3.dll 错误 '80070005'
拒绝访问。
解决办法:
赋予程序所在文件夹 internet 来宾帐号(IUSR_WEB)可写。
做法:
选择cachefile-属性-安全-添加(IUSR_WEB)-写入
都是这么说的。莫名其妙的,我的是FAT32的不存在NTFS格式的那种安全权限问题,IIS设置也正常,
我的问题是采集一部分就拒绝访问。肯定不是这个问题。
继续搜索,找到另一个方案说是,用Msxml2.XMLHTTP替换掉Microsoft.XMLHTTP,我本来用的就是Msxml2.XMLHTTP的
继续搜索。找到最终解决方案应该是用Msxml2.ServerXMLHTTP
先前也搜到这个结果,由于大意,没有及时注意到,以下是搜索过程找到的有用的相关资料。
代码如下:
代码如下:
PostUrl=http://www.xxx.com/ Server.ScriptTimeOut=20 Set oXMLHttp = createObject("Microsoft.XMLHTTP") Call oXMLHttp.Open("get", PostUrl, false) Call oXMLHttp.Send("") sHtmlStr = oXMLHttp.responseBody Set oXMLHttp = nothing
初步判定可能是打开的页面有跳转的原因,解决办法是用
MSXML2.ServerXMLHTTP
替换掉
Microsoft.XMLHTTP
即可解决。
另外在CSDN上找到这么一段代码
代码如下:
ServerURL=PostUrl Set Mail1 = Server.CreateObject("CDO.Message") Mail1.CreateMHTMLBody ServerURL,31 AA=Mail1.HTMLBody Set Mail1 = Nothing Response.Write AA
试了一下,也可以用,拷过来收藏
代码如下:
<%
' 定义变量
Dim objXmlHttp
Dim strHTML
'这是Msxml3.0中的一个稳定版本.
'使用Msxml2.ServerXMLHTTP,不使用Msxml2.XMLHTTP
Set objXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
' 如果你发现以下错误
' msxml3.dll error '80070005'
' 存取被拒绝.
' 可能是上网时使用了代理产生了错误
' 使用 proxycfg.exe 工具. :
'
' proxycfg -d
' 检查是否采用了代理上网
' 同时可以参看这个帖子: http://www.asp101.com/forum/display_message.asp?mid=51841
'
' 这个版本太旧且不稳定
'Set objXmlHttp = Server.CreateObject("Msxml2.XMLHTTP")
' 现在我们开始发送请求.
' 套用微软的话来讲: 初始化一个请求,并且指定该请求的方法(get,post等等),
' URL, 和权限验证信息(用户名,密码,等等)。
' 格式:
' .open(bstrMethod, bstrUrl, bAsync, bstrUser, bstrPassword)
'objXmlHttp.open "GET", "http://www.yahoo.com", False
objXmlHttp.open "GET", "http://www.yahoo.com", False
' 以直接的方式发送请求出去.
objXmlHttp.send
' 打印返回状态:
Response.Write "Status: " & objXmlHttp.status & " " _
& objXmlHttp.statusText & "
"
' 获取响应返回的文本.
' 这个对象本身是用来操作XML的,所以具备以下属性:
' responseBody, responseStream, 和 responseXML.
' 但是我们现在只需要文本信息
strHTML = objXmlHttp.responseText
' 但这个对象实例不再使用时,需要清除这个对象实例.
Set objXmlHttp = Nothing
' 现在我们要做的就是显示我们获取到的HTML.
' 首先看浏览器解释的效果
' 然后显示其源码
' 下面的类似
s 和 s只是为了展现获取到的内容,本身不属于获取的内容. %> Here's The Page: Here's The Code: <%= Server.HTMLEncode(strHTML) %>
推荐阅读
nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ...
[详细]
蜡笔小新 2024-12-28 13:00:24
本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ...
[详细]
蜡笔小新 2024-12-28 11:00:33
1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ...
[详细]
蜡笔小新 2024-12-27 19:32:17
本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ...
[详细]
蜡笔小新 2024-12-27 13:55:14
本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ...
[详细]
蜡笔小新 2024-12-27 11:10:05
本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ...
[详细]
蜡笔小新 2024-12-28 13:22:19
本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ...
[详细]
蜡笔小新 2024-12-28 11:28:18
本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ...
[详细]
蜡笔小新 2024-12-28 10:36:30
本周信息安全小组主要进行了CTF竞赛相关技能的学习,包括HTML和CSS的基础知识、逆向工程的初步探索以及整数溢出漏洞的学习。此外,还掌握了Linux命令行操作及互联网工作原理的基本概念。 ...
[详细]
蜡笔小新 2024-12-28 05:52:22
本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ...
[详细]
蜡笔小新 2024-12-27 21:33:33
本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ...
[详细]
蜡笔小新 2024-12-27 18:20:43
本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ...
[详细]
蜡笔小新 2024-12-27 13:47:38
本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ...
[详细]
蜡笔小新 2024-12-27 11:34:50
本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ...
[详细]
蜡笔小新 2024-12-27 11:26:39
本文探讨了在不使用服务器控件的情况下,如何通过多种方法获取并修改页面中的HTML元素值。除了常见的AJAX方式,还介绍了其他可行的技术方案。 ...
[详细]
蜡笔小新 2024-12-27 06:30:46