python小技巧之批量抓取美女图片
其中用到urllib2模块和正则表达式模块。下面直接上代码:
[/code]
#!/usr/bin/envpython
#-*-coding:utf-8-*-
#通过urllib(2)模块下载网络内容
importurllib,urllib2,gevent
#引入正则表达式模块,时间模块
importre,time
fromgeventimportmonkey
monkey.patch_all()
defgeturllist(url):
url_list=[]
printurl
s=urllib2.urlopen(url)
text=s.read()
#正则匹配,匹配其中的图片
html=re.search(r'<ol.*</ol>',text,re.S)
urls=re.finditer(r'<p><imgsrc="(.+?)jpg"/></p>',html.group(),re.I)
foriinurls:
url=i.group(1).strip()+str("jpg")
url_list.append(url)
returnurl_list
defdownload(down_url):
name=str(time.time())[:-3]+"_"+re.sub('.+?/','',down_url)
printname
urllib.urlretrieve(down_url,"D:\\TEMP\\"+name)
defgetpageurl():
page_list=[]
#进行列表页循环
forpageinrange(1,700):
url="http://jandan.net/ooxx/page-"+str(page)+"#comments"
#把生成的url加入到page_list中
page_list.append(url)
printpage_list
returnpage_list
if__name__=='__main__':
jobs=[]
pageurl=getpageurl()[::-1]
#进行图片下载
foriinpageurl:
for(downurl)ingeturllist(i):
jobs.append(gevent.spawn(download,downurl))
gevent.joinall(jobs)
[/code]
程序不长才45行,不是太难,大家可以研究下,这里我只是抛砖引玉,大家可以根据原理开发出其他的抓取程序,呵呵,自己想去吧。。。我就不多说了~~