python小练——下载指定url中的图片
2011-08-19 17:04
555 查看
#coding=gbk
#download pictures of the url
#useage: python downpicture.py www.baidu.com
import os
import sys
from html.parser import HTMLParser
from urllib.request import urlopen
from urllib.parse import urlparse
def getpicname(path):
''' retrive filename of url '''
if os.path.splitext(path)[1] == '':
return None
pr=urlparse(path)
path='http://'+pr[1]+pr[2]
return os.path.split(path)[1]
def saveimgto(path, urls):
'''
save img of url to local path
'''
if not os.path.isdir(path):
print('path is invalid')
sys.exit()
else:
for url in urls:
of=open(os.path.join(path, getpicname(url)), 'w+b')
q=urlopen(url)
of.write(q.read())
q.close()
of.close()
class myhtmlparser(HTMLParser):
'''put all src of img into urls'''
def __init__(self):
HTMLParser.__init__(self)
self.urls=list()
self.num=0
def handle_starttag(self, tag, attr):
if tag.lower() == 'img':
srcs=[u[1] for u in attr if u[0].lower() == 'src']
self.urls.extend(srcs)
self.num = self.num+1
if __name__ == '__main__':
url=sys.argv[1]
if not url.startswith('http://'):
url='http://' + sys.argv[1]
parseresult=urlparse(url)
domain='http://' + parseresult[1]
q=urlopen(url)
content=q.read().decode('utf-8', 'ignore')
q.close()
myparser=myhtmlparser()
myparser.feed(content)
for u in myparser.urls:
if (u.startswith('//')):
myparser.urls[myparser.urls.index(u)]= 'http:'+u
elif u.startswith('/'):
myparser.urls[myparser.urls.index(u)]= domain+u
saveimgto(r'D:\python\song', myparser.urls)
print('num of download pictures is {}'.format(myparser.num))
result:
num of download pictures is 19
#download pictures of the url
#useage: python downpicture.py www.baidu.com
import os
import sys
from html.parser import HTMLParser
from urllib.request import urlopen
from urllib.parse import urlparse
def getpicname(path):
''' retrive filename of url '''
if os.path.splitext(path)[1] == '':
return None
pr=urlparse(path)
path='http://'+pr[1]+pr[2]
return os.path.split(path)[1]
def saveimgto(path, urls):
'''
save img of url to local path
'''
if not os.path.isdir(path):
print('path is invalid')
sys.exit()
else:
for url in urls:
of=open(os.path.join(path, getpicname(url)), 'w+b')
q=urlopen(url)
of.write(q.read())
q.close()
of.close()
class myhtmlparser(HTMLParser):
'''put all src of img into urls'''
def __init__(self):
HTMLParser.__init__(self)
self.urls=list()
self.num=0
def handle_starttag(self, tag, attr):
if tag.lower() == 'img':
srcs=[u[1] for u in attr if u[0].lower() == 'src']
self.urls.extend(srcs)
self.num = self.num+1
if __name__ == '__main__':
url=sys.argv[1]
if not url.startswith('http://'):
url='http://' + sys.argv[1]
parseresult=urlparse(url)
domain='http://' + parseresult[1]
q=urlopen(url)
content=q.read().decode('utf-8', 'ignore')
q.close()
myparser=myhtmlparser()
myparser.feed(content)
for u in myparser.urls:
if (u.startswith('//')):
myparser.urls[myparser.urls.index(u)]= 'http:'+u
elif u.startswith('/'):
myparser.urls[myparser.urls.index(u)]= domain+u
saveimgto(r'D:\python\song', myparser.urls)
print('num of download pictures is {}'.format(myparser.num))
result:
num of download pictures is 19
相关文章推荐
- 使用python进行爬虫下载指定网站的图片
- Python 爬虫5——爬取并下载网页指定规格的图片
- 根据URL下载文件,将图片等比例压缩(可指定宽高),按原图压缩,根据指定分隔符取字符串,将文本信息追加到指定文本
- 下载远程指定路径URL图片
- python---到指定URL地址下载图片验证码,并保存不同用户名,Urllib2,urllib,os,range,time
- python实现下载指定网址所有图片的方法
- 需求(Java语言实现):对存有图片URL的txt文件进行逐行读取,自行下载txt文件中的图片到指定文件夹中
- php-下载在线url附件图片到本机服务器指定目录
- python实现下载指定网址所有图片的方法
- Python下载指定页面上图片的方法
- python下载文件(图片)源码,包含爬网内容(爬url),可保存cookie
- Python3 爬虫下载指定页面图片
- python3的爬虫算法(2)--下载图片并保存到指定途径
- python 在指定网址下载图片并显示
- 从url下载图片--java与python实现方式比较
- Python---对html文件内容进行搜索取出特定URL地址字符串,保存成列表,并使用每个url下载图片,并保存到硬盘上,使用bs4,beautifulsoup模块
- Python下载指定页面上图片的方法
- python 下载指定网页上得图片
- 【python】写文件、复制文件、下载url链接图片
- python脚本爬取百度贴吧里的图片并下载到指定路径下,支持多页同时下载