




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
我收集的资料,供你参考近期写了一段程序:从网上下载数据,写入数据库,查询、分析、打印。找了很多的资料,现作一回顾总结,本篇主要写网页数据下载与控制。(以下均为本人的一些心得,写的不对的,请各位师傅指正。希望本文能对和我一样菜的朋友有一些帮助。)一、概述及感谢二、Maxthon的使用三、网页关键字(录入、按钮、数据)解读四、POST、GET与NAME、VALUE五、使用WebBrowser六、使用IE七、查询结果是新弹出窗口的控制八、使用POST方法九、使用EXCEL获取网页数据十、例:利用webbrowser获得网页数据附件一、XmlHttp对象用法示例与说明一、概述及感谢需要用到网页控制的方面,大致概括一下为:1、程序中需要嵌入一个网页,例如:天气预报。2、需要从网上下载数据,写入到本地数据库中。特别需要感谢Winland对我的指导。二、Maxthon的使用无论哪方面的应用,首要的是找到网址(也许是废话)。以Winland的天气预报为例,假如我的程序需要这样一个东西,我该如何下爪:1、打开/2、点击“天气预报”,打开:/tianqi3、查一个城市试试,此时结果找到了,但网址没变。4、点击Maxthon的viewpage。5、在“框架”中,发现一个“内嵌框架”,点击打开。发现原来天气预报的网址为:/WeatherInfoIfm.aspx?CityName=%e5%ae%9c%e6%98%8c6、下一步,在我们自己的程序中就可以使用这个网址,直接来查询了。综上所述,通过Maxthon,我们可以很方便地找到我们所需要的真正的网址。在viewpage中还有一个“表单”,里面很清楚地显示了Name,method,以及Action。我理解这个Action就是“结果网页”的网址的后半部分(不知对不对?)。(在网页的表单里面Action是目标地址,就是处理这些递交内容的服务器端脚本。 如果Action为空的话,就是当前文件。)三、网页关键字(录入、按钮、数据)解读 ASP脚本片断的开始和结束。在标签之间的脚本代码,在主页传递给用户浏览器之前 会在服务器上执行。 和 标示网页的开头,标示网页的结束。 和 网页上的文本应该放置在这些标示之间 和 表格的开始和结束 表格边框参数明确表格边框的宽度 和 放置表格标题于这些标示之间 和 标示在表格里开始一新行。表格中每行以标示结束。 和 使用这些标示来明确表格单元格。每个单元格以标示开始,以标示结束。表格单元格可以包含任何内容,包括另一个表格。我们需要重点关注的就是: 和 , 和 以及 和 。文本框:,有的省略了TYPE,VALUE及SIZE,但应该是有关键字INPUT及NAME。选择框:EUR Euro 当前值USD United States DollarsCAD Canada Dollars单选钮:升序 当前选择降序按健:(winland注解:这个地方建议写的详细一点,先介绍一下简单的HTML文档格式,再说说Document Object Model,这个对下面的内容更有帮助。)(查了一下关于DOM的内容,大致看了一下,好像很复杂,也没有一个介绍的比较系统的,所以,暂时写不出来。)四、POST、GET与NAME、VALUE为了从网页获取数据,需要明确参数。要在网络查询里,向网络服务器发送参数的话,那么需要在核实某个具体网络服务器使用哪种方法后,使用POST或者GET方法。打开源码,查找“POST”,如果给网络服务器发送参数使用的是POST方法,那么文本POST就应该出现。如果网络服务器使用GET方法接收参数的话,那么可以在浏览器地址栏里看到该参数名称和值。例如:/dist_sch/sch/searchresult/asp?boro=Manhattan &flag= schoolInfo2(第一个参数前面带有一个问号,参数之间使用&符号分割开来,参数的先后排列顺序不重要)查找“Name”,在单词name之后,可以看到括号里有一些文本, 这些文本就是第一个参数的名称。在单词“value=”后面,是参数的当前值。例如:在上面的HTML语句中,单词“Amount”是参数名称,“1”是该参数的当前值。参数值也可以是HTML标签中的 选项之一。例如:EUR Euro 当前值USD United States DollarsCAD Canada DollarsGBP United Kingdom PoundsDEM Germany Deutsche MarksPost与Get的区别:1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。 2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。 3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。 4、Get传输的数据量小,这主要是因为受URL长度限制,只能传递大约1024字节;而Post可以传输大量的数据,可以达到2M,所以在上传文件只能使用Post。 5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。 6、Get是Form的默认方法。 五、使用WebBrowser使用WebBrowser需要添加“Microsoft Web 浏览器”(VBA)或“Microsoft internet controls”(VB)。1、WebBrowser的简要使用方法:打开前Urlstr=/WeatherInfoIfm.aspx?CityName=%e5%ae%9c%e6%98%8cF_tqyb.WebBrowser1.Navigate UrlstrF_tqyb.Show 这句话屏蔽时,WebBrowser同样打开网页,不过不显示在桌面上Private Sub WebBrowser1_StatusTextChange(ByVal Text As String) If WebBrowser1.ReadyState READYSTATE_COMPLETE Then Exit Sub 页面调用是否完毕 End Sub2、我们想要的网页内容:一般说来,我们想要的网页内容,就在WebBrowser1.document.body.innerhtml和WebBrowser1.document.body.innertext中,通过替换、分析,得到我们想要的数据。Innerhtml中的内容就是网页源码。innertext中的内容则是网页上所显示的内容。(这个内容就是我们把网页另存为文本时的内容)个人认为使用Innerhtml要方便一些。3、在程序中使用WebBrowser显示网页、如果你所需要的网页网址中带有?,且取值规则非常清楚,则很方便,直接将参数及值写到网址中就好,如上例所示(显示宜昌的天气),只需注意:第一个参数前面带有一个问号,参数之间使用&符号分割开来,参数的先后排列顺序不重要。如果值中带有非英文和数字,则需进行转换。(套用Winland的程序)例:City= Escape(“宜昌”)Public Function Escape(ByVal strText As String) As String Dim JS As ScriptControl Set JS = New MSScriptControl.ScriptControl JS.Language = JavaScript Escape = JS.Eval(encodeURI( & Replace(strText, , ) & );)End Function、如果你所需要的网页网址中带有?,但取值规则不清楚,比如用一长串数值代替,则需要从上一级开始查起,我们估且称之为“查询网页”和“结果网页”。通过分析“查询网页”使用程序自动输入、选择、点击,或用户使用时输入、选择、点击,打开“结果网页”。但此时就存在一个问题:“结果网页”是在新窗口中打开的,并没有显示在WebBrowser1中!这时候,我们从下面的几种方法中找到一种适合于自己的:(具体见后)、“遍历已打开的IE窗口”,找到“结果网页”,读网址、关闭网页,使用EXCEL的“获取外部数据”将网页内容读到EXCEL中。、“遍历已打开的IE窗口”,找到“结果网页”的hwnd(句柄),置为当前,然后模拟鼠标点击一下,再sendkey:全选、复制、关闭网页,最后在EXCEL中粘贴。、“遍历已打开的IE窗口”,找到“结果网页”,恢复对IE的控制,读innerhtml,分析innerhtml。、强制新窗口也在WebBrowser1中显示,不另开IE或Maxthon,读innerhtml,分析innerhtml。、使用POST方法(winland提供)。、使用EXCEL的POST方法。、如果你所需要的网页网址中没有?,无论你的查询条件是什么,“结果网页”的网址都不变,此时,如果直接在IE中输入该地址,则什么也得不到。对于这类网页也只能从上一级开始查起,同上。(我刚完成的这个程序就属于这类,使用winland提供的POST方法都不行,最后使用EXCEL的POST方法完成)六、使用IE 1、如果不想使用WebBrowser,而想使用Internet Explorer,或者“结果网页”是新窗口而“被迫”使用,控制起来也还比较方便。Dim IEPL As ObjectSet IEPL = CreateObject(InternetExplorer.Application)IEPL.Visible = False 隐藏打开网页URLstr=”http:/www.xxx.xxx/”IEPL.Navigate URLstr与webbrowser一样,当页面调用完毕时,发生DocumentComplete事件。读InnerhtmlIEPL.Quit 关闭或:Shell (C:Program FilesInternet ExplorerIEXPLORE.exe about:blank)遍历已打开的IE窗口,通过窗口标题找到刚才打开的IE(或“结果网页”新窗口),恢复对IE的控制。遍历已打开的IE窗口 Dim dWinFolder As New ShellWindows Dim objIE As Object Dim Czpmxurl As String, Czpmxname As String For Each objIE In dWinFolder Czpmxname = objIE.LocationName 标题 If InStr(Czpmxname, 查询结果) Then Zdurl = True End If Next If Zdurl then 找到了 objIE.application.Visible = False 隐藏Czpmxurl = objIE.LocationURL 网址读Innerhtml end ifobjIE.application.Quit 关闭2、如果“结果网页”新窗口不是IE,而是Maxthon,则要麻烦一些,上面提到的隐藏和关闭方法对Maxthon分别无效和出错,其它控制方法倒是一样。此时要关闭Maxthon,则要使用sendkey Alt+F4的方法了。当然,也可以通过修改注册表,将IE设置为默认。七、查询结果是新弹出窗口的控制 当查询结果是新弹出窗口,前面已谈到IE控制,下面再谈两种方法:1、例:通过窗口标题,找到“结果网页”的hwnd(句柄),置为当前,然后模拟鼠标点击一下,再sendkey:全选、复制、关闭网页,最后在EXCEL中粘贴。定义API函数Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As LongDeclare Sub Sleep Lib kernel32 (ByVal dwMilliseconds As Long)Declare Function SetForegroundWindow Lib user32 (ByVal hwnd As Long) As LongDeclare Function ClientToScreen Lib user32 (ByVal hwnd As Long, lpPoint As POINTAPI) As LongType POINTAPI x As Long y As LongEnd TypeDeclare Function GetSystemMetrics Lib user32 (ByVal nIndex As Long) As LongPublic Const SM_CXSCREEN = 0Public Const SM_CYSCREEN = 1Declare Sub mouse_event Lib user32 (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)Public Const MOUSEEVENTF_MOVE = &H1 mouse movePublic Const MOUSEEVENTF_LEFTDOWN = &H2 left button downPublic Const MOUSEEVENTF_LEFTUP = &H4 left button upPublic Const MOUSEEVENTF_RIGHTDOWN = &H8 right button downPublic Const MOUSEEVENTF_RIGHTUP = &H10 right button upPublic Const MOUSEEVENTF_MIDDLEDOWN = &H20 middle button downPublic Const MOUSEEVENTF_MIDDLEUP = &H40 middle button upPublic Const MOUSEEVENTF_ABSOLUTE = &H8000 absolute move定义Dim Czpmxhwnd As LongCzpmxhwnd = FindWindow(vbNullString, http:/www.XX.XX - 查询结果 - Microsoft Internet Explorer) 根据窗口标题查找,找到后返回句柄If Czpmxhwnd = 0 Then Czpmxhwnd = FindWindow(vbNullString, 查询结果 - Microsoft Internet Explorer) If Czpmxhwnd = 0 Then MsgBox 未找到, vbOKOnly, 提示 Exit Sub End If aa = SetForegroundWindow(Czpmxhwnd) 将网页调到前台 Sleep 100 mouse_event MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP, 0&, 0&, 0, 0 模拟鼠标点击,设置焦点 Sleep 100 SendKeys a, True Ctrl+A全选 Sleep 100 SendKeys c, True Ctrl+C复制 Sleep 100 SendKeys %F4, True Alt+F4关闭打开EXCEL,粘贴2、强制新窗口也在WebBrowser1中显示,不另开IE或Maxthon使用该方法,不管是通过程序“自动点击”“提交”按钮,还是用户点击“提交”按钮,都强制新窗口也在WebBrowser1中显示,不另开IE或Maxthon。新建窗口from1,窗口中放置一个WebBrowser1。Private Sub Form_Load() Dim Strurl as string Strurl= 网址 WebBrowser1.Navigate strurlEnd SubPrivate Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean) 当有新弹出窗口时触发 Dim NewWindow As Form1 Set NewWindow = New Form1 NewWindow.Show Set ppDisp = NewWindow.WebBrowser1.Object VBA中以上命令出错,需改为: Set ppDisp = NewWindow.WebBrowser1End SubPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)网页”下载完毕”时触发 Dim I As Single, J As Single If WebBrowser1.ReadyState READYSTATE_COMPLETE Then Exit Sub 网页全部打开 根据窗口标题或其它属性判断完成的是“查询网页”还是“结果网页” 根据不同的要求,写相应的命令End Sub八、使用POST方法(winland提供)使用这个方法,首先得根据“查询网页”中的内容,编写要提交的查询字串。当然,如果有非英文和数字,还必须利用上面的Escape函数进行转换。strQuery=year_start=%202007&month_start=%205&date_start=%2012& & _hour_start=%200 & _&year_end=%202007&month_end=%205&date_end=%2013&hour_end=%200 & _&substation%5B%5D=00&R1=sortall&order=1&desckey=以上这句话的意思是起始年月日时为:2007-5-12 0时(%20为空格),终止时间:2007-5-13 0时,单位为00(%5B%5D为),全部内容,升序,关键字无。这里面没有“提交”按钮的内容Call QueryStr(strQuery)Public Sub QueryStr(strQuery As String)Dim httpRequest As MSXML2.XMLHTTP30Dim txtContent As StringDim strBuffer As StringDim lngBufferSize As LongDim lngResult As LongDim arrByte() As ByteDim lSize As LongDim l As LongSet httpRequest = New MSXML2.XMLHTTP30httpRequest.Open POST, /eventresult.php, FalsehttpRequest.setRequestHeader Content-Type, text/htmlhttpRequest.send strQueryIf httpRequest.Status = 200 Then ReDim arrByte(UBound(httpRequest.responseBody) As Byte For l = 0 To UBound(httpRequest.responseBody) arrByte(l) = httpRequest.responseBody(l) Next l lngBufferSize = (UBound(arrByte) + 1) * 2 strBuffer = String$(lngBufferSize, vbNullChar) lngResult = MultiByteToWideChar(936, 0, arrByte(0), lngBufferSize / 2, StrPtr(strBuffer), lngBufferSize) txtContent = Left(strBuffer, lngResult) MsgBox txtContentElse reportErr (httpRequest.Status)End IfhttpRequest.abortSet httpRequest = NothingEnd SubSub reportErr(lStatus As Integer) Select Case lStatus Case 400 MsgBox Bad Request, vbCritical, 连接错误 Case 401 MsgBox Unauthorized, vbCritical, 连接错误 Case 402 MsgBox Payment Required, vbCritical, 连接错误 Case 403 MsgBox Forbidden, vbCritical, 连接错误 Case 404 MsgBox Not Found, vbCritical, 连接错误 Case 407 MsgBox Proxy Authentication Required, vbCritical, 连接错误 Case 408 MsgBox Request Timeout, vbCritical, 连接错误 Case 503 MsgBox Service Unavailable, vbCritical, 连接错误 Case Else MsgBox Can not reach by other reason, vbCritical, 连接错误 End SelectEnd Sub 举报 . qtqtqt qtqtqt 当前离线 在线时间157 小时经验75 威望0 性别男最后登录2013-4-2注册时间2007-5-21阅读权限20UID271029积分75帖子67精华0分享0 . 188财富0鲜花0技术等级 2EH初级EH初级, 积分 75, 距离下一级还需 275 积分积分排行3000+帖子67精华0微积分0 .串个门加好友打招呼发消息 3楼 发表于 2009-10-18 12:00:46 |只看该作者 FoxTable,数据管理专家,轻松输入,轻松统计,轻松出报表! 九、使用EXCEL获取网页数据1、获取有明确网址的网页数据通过上面种种办法找到网址后,这是以前做的一个网页数据查询打开EXCEL Weburl = URL;http:/xxx.xx.xx/ With ActiveSheet.QueryTables.Add(Connection:=Weburl, & _Destination:=Range(A1) .Name = caozuopiao .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlAllTables .WebFormatting = xlWebFormattingNone .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .Refresh BackgroundQuery:=False End With数据已写入到EXCEL2、获取“结果网页”网址都一样的网页数据(本人最近完成的程序就是这样,最终也是靠这个方法完成,使用winland的POST方法也不行,不知道具体原因。) weburl = URL;/eventresult.phpStrpost =year_start=%202007&month_start=%205&date_start=%2012& & _hour_start=%200 & _&year_end=%202007&month_end=%205&date_end=%2013&hour_end=%200 & _&substation%5B%5D=00&R1=sortall&order=1&desckey= With Exsheet.QueryTables.Add(Connection:=weburl, & _Destination:=Exsheet.Range(a1) .PostText = Strpost post字串 .BackgroundQuery = True .WebSelectionType = xlSpecifiedTables .WebTables = 1 导入网页中的第一个表,也只有一个表格,网页上可能会包含很多个表格,表格让你组织网页内容。当在记事本里查看HTML源代码时,你会发现通过下述标签你很容易识别这些表格:(表格开始)和(表格结束) .WebFormatting = xlWebFormattingAll .RefreshStyle = xlOverwriteCells .AdjustColumnWidth = True On Error GoTo Wlcw .Refresh BackgroundQuery:=False 发送命令? On Error GoTo 0 .SaveData = True End With数据已写入到EXCELWlcw: 网络不通 If P_cxzlly = sccx Or P_cxzlly = qmcx Then aa = MsgBox(网络不通,请手动打开网络/试试!, vbOKOnly, 提示) End If Exit Sub十、例:利用webbrowser获得网页数据以xuzong求助为例:/dispbbs.asp?BoardID=2&ID=243596&replyID=&skin=0下面的方法很笨,但个人觉得思路很清晰。1、打开网页:/express.asp2、查看源文件,输入POST查找到:输入框和确定按钮的Name。 3、在sheet1中加一个“下载数据”的按钮,VBA中加一个窗体Web,放置一个Webbrowser。4、“下载数据”的按钮程序如下:Private Sub CommandButton1_Click() web.WebBrowser1.Navigate /express.asp web.Show 设计时需要,实际运行时删除End Sub5、Web窗体程序如下:Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)页面调用完毕 If WebBrowser1.ReadyState READYSTATE_COMPLETE Then Exit Sub 页面是否调用完毕 If pDisp.LocationURL = /express.asp Then 查询网页已打开 Xrsj End If If pDisp.LocationURL = /track_result.asp Then 结果网页已打开 Dqsj End IfEnd SubSub Xrsj()写入数据 Dim I As Long, J As Single Dim Jlzs As Long 记录总数 Dim Strdh As String 单号字串 Dim Doc As Object 获得浏览器地文档对象 Set Doc = WebBrowser1.Document Jlzs = Sheets(1).Cells(65536, 1).End(xlUp).Row - 1 For I = 2 To Jlzs + 1 Strdh = Strdh & Sheets(1).Cells(I, 1) & vbCrLf Next I 填写用户名字段,点击确定按钮doc.body.All(ID).Value = Strdhdoc.body.All(Submit).Submit本来准备直接通过Name来赋值的,“点击”“确定”按钮的,但不知为什么提示:不支持该属性。没办法,只好使用下面的笨办法,通过name找到item号,再对相应的item赋值。究竟错在哪?请winland指点。 On Error Resume Next For I = 0 To Doc.body.All.Length - 1 Strdh = Strdh & & I & & Doc.body.All.Item(I).Name Next I On Error GoTo 0 aa = MsgBox(Strdh, vbOKOnly, ) Doc.body.All.Item(102).Value = Strdh ID Doc.body.All.Item(107).Click submitEnd SubSub Dqsj()读取数据 Dim Strhtml As String, Strtext As String Dim I As Long, J As Integer Dim Doc As Object Set Doc = WebBrowser1.Document innerhtml和innertext到底哪个好用一些,就看自己的了 Strhtml = Doc.body.innerhtml Strtext = Doc.body.innertext Strhtml = Right(Strhtml, Len(Strhtml) - InStr(Strhtml, 运单编号) 通过网页上的提示找到最近的表格 Strhtml = Right(Strhtml, Len(Strhtml) - InStr(Strhtml, TABLE) + 1) 通过关键字提取表格-表头 Strhtml = Left(Strhtml, InStr(Strhtml, /TABLE) + 7) 通过关键字提取表格-表尾 Sheets(2).Cells(1, 2) = Strhtml Sheets(2).Cells(2, 2) = Strtext表格提取出来后,再就根据和, 和 这些关键字来提取表格中的内容了,略End Sub附件一、XmlHttp对象用法示例与说明XmlHttp对象用法示例与说明: asp(VBScript)应用示例Set xmlhttp = CreateObject(Microsoft.XMLHTTP)xmlhttp.Open GET, url , False, , 异步请求xmlhttp.setRequestHeader USER-AGENT, test 指定用户代理xmlhttp.Send GetPage = xmlhttp.ResponseBody 返回内容,字节数组,如果为GB2312还需要解码下边代码将上述结果还原为GB2312编码的字符串set objstream = Server.CreateObject(adodb.stream)objstream.Type = 1objstream.Mode =3objstream.Openobjstream.Write GetPage 这里写入刚才返回的字节数组objstream.Position = 0objstream.Type = 2objstream.Charset = GB2312BytesToBstr = objstream.ReadText 下面介绍具体的属性和方法属性:1、onreadystatechange 指定当readyState属性改变时的事件处理句柄。只写。2、readyState 返回当前请求的状态,只读。0 对象已建立,但是尚未初始化,没有调用open 1 对象已建立,未调用send2 send方法已调用,当前状态和http头未知 3 已接收部分数据,获取数据会出现错误4 数据接收完毕,此时可以获取完整的回应数据3、responseBody 将回应信息正文以unsigned byte数组形式返回。只读。4、responseStream 以Ado Stream对象的形式返回响应信息。只读。5、responseText 将响应信息作为字符串返回。只读。XMLHTTP尝试将响应信息解码为Unicode字符串,XMLHTTP默认将响应数据的编码定为UTF-8,如果服务器返回的数据带BOM(byte-order mark),XMLHTTP可以解码任何UCS-2 (big or little endian)或者UCS-4 数据。注意,如果服务器返回的是xml文档,此
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老旧阀门更换施工方案
- 锅炉内检施工方案
- 厂房房顶更换施工方案
- 地理热点考试题及答案
- 水塘安装护栏施工方案
- 中国邮政集团2025茂名市秋招笔试行测高频题库及答案
- 创新潜质考试题及答案
- 中国邮政集团2025佳木斯市秋招笔试性格测试题专练及答案
- 来宾市烟草公司2025秋招系统运维岗位面试模拟题及答案
- 贺州八步区中烟工业2025秋招人力资源岗位高频笔试题库含答案
- 家政服务业信用管理办法
- 股癣的护理查房
- DB41∕T 2716-2024 农村公路承灾体灾害调查技术规程
- 宣传用品库存管理办法
- 楼盘进企业活动方案
- 金属非金属地下矿山培训
- 结肠代食管的护理
- 生活饮用水卫生知识培训
- 粉尘安全管理管理制度
- 景区摊子管理方案(3篇)
- 风电项目建设管理-课件
评论
0/150
提交评论