最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python实现下载指定网址所有图片的方法

来源:懂视网 责编:小采 时间:2020-11-27 14:34:43
文档

python实现下载指定网址所有图片的方法

python实现下载指定网址所有图片的方法:本文实例讲述了python实现下载指定网址所有图片的方法。分享给大家供大家参考。具体实现方法如下: #coding=utf-8 #download pictures of the url #useage: python downpicture.py www.baidu.com import os import
推荐度:
导读python实现下载指定网址所有图片的方法:本文实例讲述了python实现下载指定网址所有图片的方法。分享给大家供大家参考。具体实现方法如下: #coding=utf-8 #download pictures of the url #useage: python downpicture.py www.baidu.com import os import

本文实例讲述了python实现下载指定网址所有图片的方法。分享给大家供大家参考。具体实现方法如下:

#coding=utf-8
#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:pythonsong', myparser.urls)
 print('num of download pictures is {}'.format(myparser.num))

运行结果如下:

num of download pictures is 19

希望本文所述对大家的Python程序设计有所帮助。

文档

python实现下载指定网址所有图片的方法

python实现下载指定网址所有图片的方法:本文实例讲述了python实现下载指定网址所有图片的方法。分享给大家供大家参考。具体实现方法如下: #coding=utf-8 #download pictures of the url #useage: python downpicture.py www.baidu.com import os import
推荐度:
标签: 图片 下载 网页
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top