1,下载网页单幅图片到本地文件夹
# -* - coding: UTF-8 -* -
#!/usr/bin/python
#下载网页图片到本地文件夹
import os,urllib2,urllib
#设置下载后存放的本地路径"E:\img\1.jpg"
path=r'E:\img'
file_name=r'1.jpg'
dest_dir=os.path.join(path,file_name)
#设置链接的路径
url="http://pic3.nipic.com/20090518/2662644_083611033_2.jpg"
#定义下载函数downLoadPicFromURL(本地文件夹,网页URL)
def downLoadPicFromURL(dest_dir,URL):
try:
urllib.urlretrieve(url , dest_dir)
except:
print '\tError retrieving the URL:', dest_dir
#运行
downLoadPicFromURL(dest_dir,url)
2,下载网页一楼多幅照片到本地文件夹
# -* - coding: UTF-8 -* -
#!/usr/bin/python
#下载网页所有图片到本地文件夹
import os,urllib2,urllib
import re,urllib2
def getPage(url):
'''下载文件html代码,找出一楼的核心代码'''
opener = urllib2.build_opener()
#不加头信息则出现403错误和乱码
opener.addheaders = [('User-agent', 'Mozilla/5.0')];
htmlAll = opener.open( url ).read()
reg1Floor = '(.*?)'
html = re.search(reg1Floor,htmlAll)
html = html.group()
#文件保存编码和文件编辑编码都是utf-8,所以decode一次,不然会出现乱码,但是不影响结果。
return html.decode('utf-8')
def getImg(url):
'''从核心代码中照图图片地址,并且下载保存、命名'''
pageHtml = getPage(url)
#找到所有图片地址
regImg = '
'
imglist = re.findall(regImg,pageHtml)
dir = r'E:\img'
#print imglist
for index in xrange(0,len(imglist)):
picname = str(index+1) + '.jpg'
finename = os.path.join(dir,picname)
urllib.urlretrieve(imglist[index], finename)
print finename + ' ok!'
if __name__ == '__main__':
getImg('http://topic.csdn.net/u/20101013/11/024465A6-8E16-444C-9A09-DD374D29044C.html')
3,文摘
利用Python抓取和解析网页(上)
http://tech.chinaunix.net/a2009/0707/601/000000601864.shtml
对搜索引擎、文件索引、文档转换、数据检索、站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理。事实上,通过Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览器就能够解析和处理HTML文档。
import urlparse
#不能运行,只是示例
parsedTuple = urlparse.urlparse("http://www.google.com/search?hl=en&q=urlparse&btnG=Google+Search")
unparsedURL = urlparse.urlunparse((URLscheme,URLlocation, URLpath, '', '', ''))
newURL = urlparse.urljoin(unparsedURL,"/module-urllib2/request-objects.html")
函数urlparse(urlstring [, default_scheme [, allow_fragments]])的作用是将URL分解成不同的组成部分,它从urlstring中取得URL,并返回元组 (scheme, netloc, path, parameters, query, fragment)。注意,返回的这个元组非常有用,例如可以用来确定网络协议(HTTP、FTP等等 )、服务器地址、文件路径,等等。