Python运用urllib2和BeautifulSoup爬取网站ZOL桌面壁纸上的精美电脑壁纸
Python运用urllib2和BeautifulSoup爬取网站ZOL桌面壁纸上的精美电脑壁纸#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time: 2017/7/28 13:00# @File: SpyImg.py"""爬取壁纸"""from bs4 import BeautifulSoupimport
·
Python运用urllib2和BeautifulSoup爬取网站ZOL桌面壁纸上的精美电脑壁纸
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/7/28 13:00
# @File : SpyImg.py
"""
爬取壁纸
"""
from bs4 import BeautifulSoup
import urllib2
import urllib
import re
page_URL=[] #存放每个待爬取图片的网页的URL
img_URL=[] #存放图片地址URL
#对传入的URL进行解析,获取下一页面的URL
def paser_Page_URL(url):
response=urllib2.urlopen(url,timeout=5)
soup=BeautifulSoup(response)
html=soup.find_all(id='pageNext')
i=html[0]
if i is not None:
the_url=i.get('href')
#此处根据网站实际,此时为最后一页壁纸,往后需跳转到下一个图集
if the_url=='javascript:;':
return get_Next_Page_URL(url)
else:
the_url='http://desk.zol.com.cn'+the_url
return the_url
#解析页面,获取图片URL
def paser_Img_URl(url):
response=urllib2.urlopen(url)
soup=BeautifulSoup(response)
html=soup.find_all(id='bigImg')
i=html[0]
if i is not None:
img_url=i.get('src')
return img_url
#根据URL进行对应图片下载
def download_Img(img_url):
x=0
for url in img_url:
urllib.urlretrieve(url,'D:\IMGS\%s.jpg' % x)
print '下载第 %s 张完成' % x
x+=1
#获取下一图集
def get_Next_Page_URL(url):
response=urllib2.urlopen(url)
soup=BeautifulSoup(response)
html=soup.select('.txt')
string=html[1]
string=str(string) #需转换成字符串
linkPattern = re.compile("href=\"(.+?)\"") #运用正则表达式解析出href里面的内容
match=re.findall(linkPattern,string)
the_url=match[0]
the_url='http://desk.zol.com.cn'+the_url
return the_url
root_url='http://desk.zol.com.cn/bizhi/7089_87888_2.html' #开始地址
num=0 #num为爬取图片数量
while num<=10:
url=paser_Page_URL(root_url)
print url
if url is not None:
page_URL.append(url)
root_url=url
img_url=paser_Img_URl(url)
img_URL.append(img_url)
print '添加',num
num+=1
else:
num+=1
download_Img(img_URL) #下载图片到本地
更多推荐
已为社区贡献3条内容
所有评论(0)