当前位置: 首页 > news >正文

怎么实现python图片地址_按楼号保存图片!用python怎么实现?

匿名用户

1级

2006-09-29 回答

这种情况用正则表达式最恰当。

注意:程序运行完毕后,note.txt 将记载所有程序找不到图片链接的楼号及相关的页面链接,

你必须自己鉴定那些楼里是否真的没有图片。估计有少于十层其实是有图片的(链接太不规律所致): 你自己储存好了。

# -*- coding: utf-8 -*-

import urllib, re, time

URLTemplate = 'http://www.k68.cn/PostViewMission.asp?dMode=0&PostPage=%d' + \

'&BoardID=1001&imageID=34314&page=1&imageNum=1&SearchWords=&sstype=1&rmd=19260'

pageURLs = [ URLTemplate % pageNum for pageNum in range( 1, 155 ) ]

startTime = time.time( )

noteFile = open( 'note.txt', 'w' )

savedFileCount = 0

print '\nInitializing... (will complete shortly)',

for pageURL in pageURLs :

pageSource = urllib.urlopen( pageURL ).read( )

splitted = re.split( '(\d+)楼', pageSource )[ 1 : ]

for i in range( len( splitted ) ):    # for each floor

if not i % 2:    # floor numbers in even posistions, floor source in odd positions

floorNumber = splitted[ i ]

pictureURLPattern = r'(?<=href=")http://[^? ]+?\.\w{3}(?="\s*target)'

pictureURLs = re.findall( pictureURLPattern, splitted[ i + 1 ] )

if not pictureURLs:

note = 'no picture URL found at floor #%s on this page:\n%s\n' % ( floorNumber, pageURL )

print >> noteFile, note

else:

if len( pictureURLs ) == 1:

fileName = floorNumber + pictureURLs[ 0 ][ -4 : ]

urllib.urlretrieve( pictureURLs[ 0 ], fileName )

else:

for pictureNumber, pictureURL in enumerate( pictureURLs ):

fileName = '%s-%d%s' % ( floorNumber, pictureNumber + 1, pictureURL[ -4 : ] )

urllib.urlretrieve( pictureURL, fileName )

savedFileCount += len( pictureURLs )

print '\rSo far, %d files saved, floor # %s reached.\t\t\t\t' % ( savedFileCount, floorNumber ),

print '\n\nAll done! Saved %d files, took %.1f minutes.' % ( savedFileCount, ( time.time( ) - startTime ) / 60 )

相关文章:

  • 怎样训练左右手协调_小提琴左手基本技术基础训练(一)
  • 前端怎么分次取上万条数据_上万条数据的转场,也可以在几秒钟内完成
  • multisim页面不够大_效率大提升!八种你一定用得到的网页工具(上篇)
  • python 归一化_python-OpenCV之normalize(归一化 )函数详解
  • 如何在eplan里面画一个伺服驱动器_EPLAN电气图实例-控制回路(电机回路2)
  • cmd php 不是内部命令_cmd不是内部命令解决方法
  • mysql test 映射到实体_10分钟教你Python+MySQL数据库操作
  • restful批量上传文件_RESTful文件上传与下载
  • db2存储过程怎么调试_多租户模式下存储方案的考量
  • wpf 点击按钮弹出新对话框_wpf-打开文件对话框MVVM
  • DCL记忆上次输入值lisp_如何快速记忆Word中Ctr+字母、数字快捷键
  • go定时器 每天重复_腾讯 Go 性能优化实战
  • 注入js文件_你需要知道的依赖注入
  • 世界机器人冠军王宇航_带队两夺机器人世界杯冠军 金牌教练是如何养成的
  • tanh函数matlab_MATLAB常用数学函数
  • [PHP内核探索]PHP中的哈希表
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【技术性】Search知识
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 2019年如何成为全栈工程师?
  • 30秒的PHP代码片段(1)数组 - Array
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JWT究竟是什么呢?
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • rabbitmq延迟消息示例
  • 从PHP迁移至Golang - 基础篇
  • 高性能JavaScript阅读简记(三)
  • 给初学者:JavaScript 中数组操作注意点
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 前端_面试
  • 如何优雅地使用 Sublime Text
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 双管齐下,VMware的容器新战略
  • 在Unity中实现一个简单的消息管理器
  • 函数计算新功能-----支持C#函数
  • # 数论-逆元
  • #mysql 8.0 踩坑日记
  • $(selector).each()和$.each()的区别
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (ZT)出版业改革:该死的死,该生的生
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (强烈推荐)移动端音视频从零到上手(上)
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (十六)Flask之蓝图
  • (一)80c52学习之旅-起始篇
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)C#调用WebService 基础
  • (转)memcache、redis缓存
  • (转)ORM
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (转载)OpenStack Hacker养成指南
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)