2,722
社区成员
发帖
与我相关
我的任务
分享
IF !DIRECTORY('.\pic')
MKDIR('.\pic')
ENDIF
FOR pg = 1 TO 100 &&这个地方可以将100分成10等分,然后编译出10个EXE,利用多进程,加快爬去速度。
lnnum = 30
IF pg < 2
lcpgurl = 'https://www.nvshens.com/gallery/yazhou'
ELSE
lcpgurl = 'https://www.nvshens.com/gallery/yazhou/'+ALLTRIM(STR(pg))+'.html'
ENDIF
LOCAL oxhttp AS Microsoft.xmlhttp
oxhttp=CREATEOBJECT("Microsoft.xmlhttp")
oxhttp.OPEN("GET",lcpgurl,.F.)
oxhttp.SEND()
SourceCode=STRCONV(oxhttp.responseBody,11)
RELEASE oxhttp
FOR a = 1 TO lnnum
lchtml = 'https://www.nvshens.com'+STREXTRACT(SourceCode,"'><a href='","' class='caption'>",a)
IF lchtml == ""
ELSE
LOCAL oxhttp1 AS Microsoft.xmlhttp
oxhttp1=CREATEOBJECT("Microsoft.xmlhttp")
oxhttp1.OPEN("GET",lchtml,.F.)
oxhttp1.SEND()
SourceCode1=STRCONV(oxhttp1.responseBody,11)
lnpicnum = VAL(STREXTRACT(SourceCode1,"#DB0909'>","张照片",1))
lcfolder = ALLTRIM(STREXTRACT(SourceCode1,'<title>','</title>',1))
lcfolder = STRTRAN(lcfolder,'|','')
lcfolder = STRTRAN(lcfolder,'<','')
lcfolder = STRTRAN(lcfolder,'>','')
lcfolder = STRTRAN(lcfolder,'/','')
lcfolder = STRTRAN(lcfolder,'\','')
lcfolder = STRTRAN(lcfolder,':','')
lcfolder = STRTRAN(lcfolder,'"','')
lcfolder = STRTRAN(lcfolder,'*','')
lcfolder = STRTRAN(lcfolder,'?','')
IF !DIRECTORY('.\pic\'+lcfolder)
MKDIR('.\pic\'+lcfolder)
ELSE
lcfolder = lcfolder + '_NEW'
MKDIR('.\pic\'+lcfolder)
ENDIF
lcpicurlbase = STREXTRACT(SourceCode1,"<img src='","0.jpg",1)
RELEASE oxhttp1
FOR b = 1 TO lnpicnum
IF b < 2
lcpicurl = lcpicurlbase + "0.jpg"
ELSE
DO CASE
CASE b < 11
lcpicurl = lcpicurlbase + '00' + ALLTRIM(STR(b-1)) + '.jpg'
CASE b < 101
lcpicurl = lcpicurlbase + '0' + ALLTRIM(STR(b-1)) + '.jpg'
OTHERWISE
lcpicurl = lcpicurlbase + ALLTRIM(STR(b-1)) + '.jpg'
ENDCASE
ENDIF
LOCAL oxhttp2 AS Microsoft.xmlhttp
oxhttp2=CREATEOBJECT("Microsoft.xmlhttp")
oxhttp2.OPEN("GET",lcpicurl,.F.)
oxhttp2.SEND()
IF !ISNULL(oxhttp2.responseBody)
STRTOFILE(oxhttp2.responseBody,'.\pic\'+lcfolder+'\'+ALLTRIM(STR(b))+'.jpg')
ENDIF
RELEASE oxhttp2
ENDFOR
ENDIF
ENDFOR
ENDFOR
MESSAGEBOX("All done!!",48,"Tips")