失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python 爬取高清桌面壁纸

Python 爬取高清桌面壁纸

时间:2019-04-10 12:54:22

相关推荐

Python 爬取高清桌面壁纸

今天写了一个脚本用来爬取ZOL桌面壁纸网站的高清图片;

链接:/1920x1080/

本程序只爬了美女板块的图片,若要下载其他板块,只需修改程序中的”meinv“即可

代码如下:

#coding=utf-8import urllib import reimport timeclass Spider:baseUrl='/'pic_index=0itemGroupPic=[]def __init__(self,page_count):time.sleep(1)url=self.baseUrl+"meinv/1920x1080/"for i in range(10, page_count):time.sleep(5)html=self.getHtml(url,i)getbi=self.getPageImageGroup(html) bizhi_url=self.getbizhiurlList(getbi)def getHtml(self,url,page_index):url=url+str(page_index)+".html"page = urllib.urlopen(url)html = page.read()return htmldef getPageImageGroup(self,html):reg=r'<a class="pic" href="/bizhi/.*?.html' imgre=pile(reg)imagelist=re.findall(imgre,html)return imagelistdef getbizhiurlList(self,imagelist):for iurl in imagelist:reg=r'bizhi/.*?.html' imgre=pile(reg)itmeimageurl=re.findall(imgre,iurl)self.itemGroupPic.append(itmeimageurl)def GetCurrentUrlAndDownload(self,url):page = urllib.urlopen(url)html = page.read() #read()出来的文本和网页右键源代码有点出入,这里需要优化reg=r'<img id="bigImg" src="http://.*.jpg"' imgre=pile(reg)urllist=re.findall(imgre,html)for _u in urllist:reg1=r'http://.*.jpg' imgre1=pile(reg1)itmeimageurl=re.findall(imgre1,_u)print u'正在下载'+str(self.pic_index)+u'图片'#D:\PictureAvi目录要事先创建好urllib.urlretrieve(itmeimageurl[0],'D:\PictureAvi\%s.jpg' % self.pic_index)self.pic_index+=1#获取当前页面的url,next_htmlnext_reg=r'<a id="pageNext" class="next" href=".*.html"' next_imgre=pile(next_reg)next_urllist=re.findall(next_imgre,html)if(len(next_urllist)==0):return ""#获取真正的next_htmlnext_reg_child=r'bizhi.*?.html' next_imgre_child=pile(next_reg_child)real_url=re.findall(next_imgre_child,next_urllist[0])return real_url[0]def MatchUrl(self,imagelist):for imgurl in imagelist:url=self.baseUrl+imgurl[0]next_url=self.GetCurrentUrlAndDownload(url)#递归获取下一个urlwhile(next_url != ''):_itme_next_url=self.baseUrl+next_urlnext_url=self.GetCurrentUrlAndDownload(_itme_next_url)if __name__ == '__main__':spider = Spider(15)spider.MatchUrl(spider.itemGroupPic)print u'结束下载'

运行结果如下:

运行环境是py2.7,原理很简单,并没有用到类似scrapy这样的框架,也没用什么动态获取

1.通过urllib获取网页源代码

2.找到规律,通过正则表达式找到url

3.用urllib下载到本地文件

未完待续。。。。。

如果觉得《Python 爬取高清桌面壁纸》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。