找回密码
 加入
搜索
查看: 20029|回复: 45

[原创] 缘鸟脚本教学初级采集示例之一[源码发布2013.12.08]

[复制链接]
发表于 2013-6-13 11:24:24 | 显示全部楼层 |阅读模式
本帖最后由 绿色风 于 2013-12-8 10:53 编辑



源码将发到第100





===================
源码发布   2013.12.8
==================================
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_icon=..\WINDOWS\system32\SHELL32.dll|-118
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include<inet.au3>
#include<array.au3>


Dim $url = "http://p.djys.com/20130927/2639.html" ;初始地址
Dim $TemD = @ScriptDir & "\temp\",$__url_ub,$i,$_url_u_u,$_url_d_u,$__url_stURL,$__url

MsgBox(0,"提示说明","程序启动时,会先对目标网址有个1500毫秒的PING动作!!"&@crlf&@crlf&"      请等待..."&@crlf&@crlf&@crlf&"网速不给力会引起程序出错跳出的哟!!!!",5)
$p = Ping("p.djys.com",1500)
If @error Then 
        MsgBox(0,"注意","太遗憾的了,你的那破网速不给力启动不了本程序啦!!!"&@crlf&"网速好一点时再看吧!!!")
        Exit
EndIf
If  FileExists($TemD) = 0 Then DirCreate($TemD) ;如果目录不存在就创建



#region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("目标来源<<当季养生>>  来自<<图片频道>>  缘鸟脚本教学示例 by:绿色风", 602, 508, 192, 114)
$Group1 = GUICtrlCreateGroup("", 0, -4, 600, 385)
$Pic1 = GUICtrlCreatePic("", 8, 8, 585, 364)
GUICtrlSetResizing(-1, 128+8)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("上集|", 0, 384, 185, 25)
$Button2 = GUICtrlCreateButton("上一幅", 192, 384, 65, 25)
$Button3 = GUICtrlCreateButton("保  存", 264, 384, 73, 25)
$Button4 = GUICtrlCreateButton("下一幅", 344, 384, 57, 25)
$Button5 = GUICtrlCreateButton("下集|", 408, 384, 185, 25)
$Label1 = GUICtrlCreateLabel("当前地址", 0, 420, 52, 17)
$Input1 = GUICtrlCreateInput($TemD, 56, 416, 537, 21);"http://p.djys.com/20130610/2509.html"
$Label2 = GUICtrlCreateLabel("保存目录", 0, 444, 52, 17)
$Input2 = GUICtrlCreateInput(@ScriptDir, 56, 440, 537, 21)
$Label3 = GUICtrlCreateLabel("缘鸟脚本社区 教学示例脚本  by:绿色风 2013.06.12", 16, 472, 567, 33)
GUICtrlSetCursor(-1, 0)
GUICtrlSetFont(-1, 18, 800, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0x008000)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###


_cai1($url) ;初始值

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1 ;上集
                        _cai1($_url_U_u)
                Case $Button5 ;下集
                        _cai1($_url_D_u)
                Case $Button2 ;上一幅
                         $i = $i - 1
                        If $i < 0 Then Dim $i = $__url_ub
                        _cai2($i)
                Case $Button4 ;下一幅
                         $i = $i + 1
                        If $i > $__url_ub Then Dim $i = 0
                        _cai2($i)
                Case $button3 ;保存
                        $svDir = GUICtrlRead($Input2)
                        If  FileExists($svDir) = 0 Then DirCreate($svDir) ;如果目录不存在就创建
                        FileCopy($TemD & $i & ".jpg",$svDir&"\"&@YEAR &@MON &@MDAY&@HOUR &@MIN&@SEC&".jpg")
                        GUICtrlSetData($button3,"O K")
                        Sleep(250)
                        GUICtrlSetData($button3,"")
                        Sleep(250)
                        GUICtrlSetData($button3,"O K")
                        Sleep(250)
                        GUICtrlSetData($button3,"")
                        Sleep(250)
                        GUICtrlSetData($button3,"保  存")
                Case $Label3 ;谢谢支持,赞助个彩票,RMB什么的都可以,谢谢!!!taobaoID:VBT风哥
                        ShellExecuteWait("https://me.alipay.com/6sfeng","","","open",@SW_MAXIMIZE)
        EndSwitch
WEnd


Func _cai1($url) ;上下集的采集
        $url_doc = _INetGetSource($url) ;获取源码
        $_url = StringRegExp($url_doc, '<span id="fastpre">(.*?) (.*?)</span>', 3) ;上下篇   ok
        $_url_U = StringRegExp($_url[0], "<a href='(.*?)'>(.*?)</a>", 3) ;上一篇
        If @error = 1 Then
                GUICtrlSetState($Button1, $GUI_DISABLE) ;按键灰色不可用
                GUICtrlSetData($Button1,"上集|木有的了")
        Else
                GUICtrlSetState($Button1, $GUI_ENABLE) ;按键可用
                Dim $_url_U_u = $_url_U[0] ;上一篇地址
                ;Dim $_url_U_n = $_url_U[1] ;上一篇标题
                GUICtrlSetData($Button1,"上集|"&$_url_U[1])
        EndIf
        
        $_url_D = StringRegExp($_url[1], "<a href='(.*?)'>(.*?)</a>", 3) ;下一篇
        If @error = 1 Then
                GUICtrlSetState($Button5, $GUI_DISABLE) ;按键灰色不可用
                GUICtrlSetData($Button5,"下集|木有的了")
        Else
                GUICtrlSetState($Button5, $GUI_ENABLE) ;按键可用
                Dim $_url_D_u = $_url_D[0] ;下一篇地址
                ;Dim $_url_D_n = $_url_D[1] ;下一篇标题
                GUICtrlSetData($Input1,$_url_D_u)
                GUICtrlSetData($Button5,"下集|"&$_url_D[1])
        EndIf
        
        
        $__url = StringRegExp($url_doc, '<div class="tPages"\s+(.*?)</div>', 3) ;上下页   ok
        $__url = StringRegExp($__url[0], "<a href='(.*?)'>", 3) ;上下页 数据    ok
        Dim $__url_ad = StringSplit($url, "/") ;分解地址
        Dim $__url_stURL = StringReplace($url, $__url_ad[UBound($__url_ad) - 1], "") ;获取地址的目录(倒数第二级地址)
        _ArrayAdd($__url, $__url_ad[UBound($__url_ad) - 1]) ;将最后一级的地地址插入到[上下页]数组中
        ;;页面的完整地址  $__url_stURL&$__url[1]
        Dim $__url_ub = UBound($__url) - 1  ;数组的大小
        Dim $i = $__url_ub ;设置$i的当前值

        Dim $img = StringRegExp($url_doc, '<tr><td><img src="(.*?)"', 3) ;获取到当前图片地址  ok
        If @error = 1 Then
                MsgBox(0, "问题", "不知道的原因,机器没找到图片"&@crlf&$img)
        Else
                Local $imgGet = InetGet($img[0], $TemD & $__url_ub & ".jpg", 1)
                _getImgWH($TemD & $i & ".jpg")  ;设置图片显示
                InetClose($imgGet)
        EndIf
;~         MsgBox(0,$i,$TemD & $__url_ub & ".jpg") ;测试用
EndFunc   ;==>_cai1

Func _cai2($ID)
        ;MsgBox(0,$ID,$__url_stURL&$__url[$ID]) ;测试用
        GUICtrlSetData($Input1,$__url_stURL&$__url[$ID])
        $url_doc = _INetGetSource($__url_stURL&$__url[$id]) ;获取源码
        Dim $img = StringRegExp($url_doc, '<tr><td><img src="(.*?)"', 3) ;获取到当前图片地址  ok
                If @error = 1 Then
                MsgBox(0, "问题", "不知道的原因,机器没找到图片")
        Else
                Local $imgGet =InetGet($img[0], $TemD & $ID & ".jpg", 1, 0)
                _getImgWH($TemD & $id & ".jpg")  ;设置图片显示
                InetClose($imgGet)
        EndIf
EndFunc   ;==>_cai2


Func _getImgWH($file) ;获取图片尺寸
        $o = ObjCreate("scripting.filesystemobject")
        $f = $o.GetFile($file)
        $shell1 = ObjCreate("Shell.Application")
        $shell = $shell1.Namespace($f.ParentFolder.Path)
        $s = $shell.GetDetailsOf($shell.Items.Item($f.Name), 26)
            $size = StringSplit(StringStripWS($s,8), "x") ;得到的图的尺寸为 [1] 为宽度 [2] 为高度
                
                If $size[1] / $size[2] < 586 / 364 Then 
                ;8, 8, 586, 364 设置图像的显示比例  坐标中心点 x=293+8 y=182+8  图像的高度 y=364/2=182
                $h = 364 / $size[2] ;计算图片的比例 以图高基准
                $w = Int($size[1] * $h ) ;计算图片伸缩后的宽度
                $x = 301-Int($w / 2 ) ;计算图片在控件中的x坐标
                GUICtrlSetPos($Pic1,$x,8,$w,364)
        else
                ;8, 8, 586, 364 设置图像的显示比例  坐标中心点 x=293+8 y=182+8  图像的宽度 x=586/2=293
                $w = 586 / $size[1] ;计算图片的比例 以图宽基准
                $h = Int($size[2] * $w ) ;计算图片伸缩后的高度
                $y = 190-Int($h / 2 ) ;计算图片在控件中的x坐标
                GUICtrlSetPos($Pic1,8,$y,586,$h)
        EndIf
                GUICtrlSetImage($Pic1, $file) ;设置图片控件的图片   
        EndFunc   ;==>getWH
        
        

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2013-6-13 11:53:06 | 显示全部楼层
回复 1# 绿色风

她很妖,你很...
发表于 2013-6-13 12:20:12 | 显示全部楼层
真是人间尤物。
发表于 2013-6-13 13:11:11 | 显示全部楼层
我是看到图片进来的,顺便顶起!是男人就下一百楼
发表于 2013-6-13 14:40:00 | 显示全部楼层
很强悍嘛,要到100#才公布源码?一楼的不是源码还要收费吗?
 楼主| 发表于 2013-6-13 14:54:22 | 显示全部楼层
回复 6# xiaxiang

这个区下载东西才10个金币,收费5个也才15个。放其它区等你下载那就要30个金币的了。


还有看的人都去群里下载的了。这里就没人下载的了
发表于 2013-6-13 15:36:58 | 显示全部楼层
顶起,这个可以学习一下!~~
图片果断是撸料啊~
发表于 2013-6-13 16:11:02 | 显示全部楼层
回复 1# 绿色风


    要到100#才公布源码
发表于 2013-6-13 16:55:08 | 显示全部楼层
我来贡献一楼
发表于 2013-6-13 17:27:07 | 显示全部楼层
很想看看源码。作品非常好。
发表于 2013-6-13 17:50:14 | 显示全部楼层
干什么用的?
发表于 2013-6-13 21:12:45 | 显示全部楼层
回复 4# xms77

好吧,被你败了.
本来懒洋洋的不想打字的!
发表于 2013-6-13 23:46:09 | 显示全部楼层
强顶楼主一楼。。
发表于 2013-6-14 01:40:17 | 显示全部楼层
继续顶起,还只到15楼呀
发表于 2013-6-14 09:30:50 | 显示全部楼层
⊙﹏⊙b汗
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-3-29 21:19 , Processed in 0.080546 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表