python小练——下载指定url中的图片
#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
转载于:https://www.cnblogs.com/lyroge/archive/2011/08/19/2145978.html
python小练——下载指定url中的图片相关推荐
- PHP下载CSS文件中的图片
作为一个资深并且专业的扒皮人员,在我从初三开始投入伟大的互联网中到现在积累了丰富的扒皮经验.我相信每个做web的程序员也都会有类似的经历. 在扒皮过程中,必不可少的需要下载样式文件中的图片.碰到比较庞 ...
- php下载css图片,PHP实现下载CSS文件中的图片
作为一名资深专业的程序员,小编积累了丰富的经验,相信每个在网络上工作的程序员都会有类似的经历,爱站技术频道小编在这里总结了PHP实现下载CSS文件中的图片,下面一起跟着小编来了解一下吧! 在扒皮过程中 ...
- php中怎么应用css文件,利用PHP怎么下载CSS文件中的图片
利用PHP怎么下载CSS文件中的图片 发布时间:2020-12-18 16:14:49 来源:亿速云 阅读:87 作者:Leah 这篇文章给大家介绍利用PHP怎么下载CSS文件中的图片,内容非常详细, ...
- 详解 利用NPOI向Excel指定位置中加入图片(支持.xlsx和.xls)
git地址:https://github.com/KaiZons/-NPOI-Excel-.git/** Author:zhoukaikai* 注意:本项目中使用的NPOI版本为 V2.4.1.0:需 ...
- 通过Python的fitz库提取pdf中的图片
文章目录 前言 一.fitz库是什么? 二.安装fitz库 三.查看fitz库版本 四.pymupdf库是什么? 五.安装pymupdf库 六.查看pymupdf库版本 七.fitz和pymupdf是 ...
- 超好用Python小功能(持续更新中)
文章目录 一.字符串操作小功能 1.把数字转为千位数值类型 2.检测字符串是不是纯数字 3.python列表的交.并.差集 4.对列表中字典中的字典排序 5.python 求角度大小 6.已知一个点, ...
- 吴枫 python小课怎么样_编程中,有哪些好的习惯从一开始就值得坚持?
电影<喜剧之王>里,周星驰饰演的尹天仇,是一个渴望成为真正的演员,却不断沦为落魄跑龙套的小人物. 即便如此,他对演戏的态度始终认真而可敬.他每天不但锲而不舍寻找演戏机会,还在街坊福利社开了 ...
- 从指定URL中提取文件名
通过String对象的replace()方法实现,该方法用于替换一个与正则表达式匹配的子串,该方法的替换字符串可以包含$字符 URL是否正确的正则表达式为: //验证URL是否正确的正则表达式var ...
- python学习之下载百度搜索到的图片(含源代码)
23年刚开工比较闲,这两天有看到小伙伴在积极的学习python课程,自己也不能拉下,找了一些资料,测试下载百度图片. 此下载代码比较简单,码字在这里,也是让大家一起来学习下,这个流程和思路.多多支持哦 ...
最新文章
- 菜鸟教程 php跨域,PHP Ajax 跨域问题最佳解决方案
- python编程用什么电脑好-初学Python编程看哪些书比较好?
- ubuntu安装docker下载慢,运行hello-world超时
- 旺财速啃H5框架之Bootstrap(五)
- 唏嘘!2019榜单出炉:铁打的Python连续3年第一,它居然跌出前十?
- 场效应管原理_场效应管——不就是一个电控开关?
- Theano2.1.11-基础知识之稀疏
- 体验Visual Studio 2015 Windows Forms应用程序开发与维护
- java 字符串排序_Java控制台输入字符串及字符串比较
- r-cnn 行人检测_了解用于对象检测的快速R-CNN和快速R-CNN。
- 索尼android 怎么截屏快捷键,索尼z5怎么截屏 sony z5截图方法教程
- 将txt文件编码改为utf-8格式
- 小学计算机专业说课稿模板,小学信息技术计算机的小管家说课稿
- 火车头伪原创接口【基于ai伪原创】
- 后院失火的大疆,距离真正的巨头还有多远?
- arduino+三引脚蜂鸣器YL-44(3pins)的简单使用
- 结构化数据和非结构化数据的分析
- 【Python简单爬虫练习--Bilibili榜单】爬取+梳理B站排行榜页面
- 中国呼吸介入领导者堃博医疗在港交所挂牌上市;勃林格殷格翰收购Abexxa Biologics | 医药健闻...
- 安装PS出现“由于找不到VCRUNTIME 140_1.dll”的解决方法
热门文章
- 部署到gcp_将S/4部署在“大型公有云”上
- oracle如何查看某个时间段调用的函数的异常信息_每天14点遭遇惊魂时刻,如何一步一步揪出真凶?...
- java系列2:方法的重载
- 6 | Spatial-based GNN/convolution模型之MoNET
- graphviz安装以及入门
- SAP License:BWBCS学习笔记
- java 优秀开源项目
- 5-去掉a标签下划线,禁止a标签的跳转
- 在webstorm中新建模板
- 在发布ASP.NET网站的时候,出现state server错误