python采集博客中上传的QQ截图文件


Posted in Python onJuly 18, 2014

哎,以前写博文的时候没注意,有些图片用QQ来截取,获得的图片文件名都是类似于QQ截图20120926174732-300×15.png的形式,昨天用ftp备份网站文件的时候发现,中文名在flashfxp里面显示的是乱码的,看起来好难受,所以写了一个python小脚本,爬取整个网站,然后获取每个文章页面的图片名,并判断如果是类似于QQ截图20120926174732-300×15.png的形式就输出并将该图片地址和对应的文章地址保存在文件中,然后通过该文件来逐个修改。

好了,下面是程序代码:

import urllib2
from bs4 import BeautifulSoup
import re
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
 
baseurl = "https://3water.com/dont-worry.html"
#说明下,起始地址是第一篇文章的地址,通过该文章的页面就
#可以使用BeautifulSoup模块来获取上一篇文章的地址
 
file = open(r"E:\123.txt","a")
 
def pageloop(url):
  page = urllib2.urlopen(url)
  soup = BeautifulSoup(page)
  img = soup.findAll(['img'])
  if img == []:
    print "当前页面没有图片"
    return
  else:
    for myimg in img:
      link = myimg.get('src')
      print link
      
      pattern = re.compile(r'QQ\S*[0-9]*png')
      badimg = pattern.findall(str(link))
      if badimg:
        print url
        file.write(link + "\n")
        file.write(url+"\n")
      
 
 
def getthenextpage(url):
  pageloop(url)
  page = urllib2.urlopen(url)
  soup = BeautifulSoup(page)
  for spanclass in soup.findAll(attrs={"class" : "article-nav-prev"}):
    #print spanclass
    if spanclass.find('article-nav-prev') != -1:
      pattern = re.compile(r'https://3water.com/\S*html')
      pageurl = pattern.findall(str(spanclass))
      for i in pageurl:
        #print i
        getthenextpage(i)
       
      
 
getthenextpage(baseurl)
 
 
 
print "the end!"
file.close()

最后,对和我以前刚开始做网站的同学说下,图片命名的话最好是用数字形式或者是英文、拼音的形式,要不然到最后想修改的话就麻烦了,所以最好就是从刚开始就养成好的习惯,用正确的命名规范来问文章、图片来命名,这样就会好很多。

Python 相关文章推荐
python字符串排序方法
Aug 29 Python
Python自动连接ssh的方法
Mar 07 Python
在Docker上部署Python的Flask框架的教程
Apr 08 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
Apr 22 Python
python中dir()与__dict__属性的区别浅析
Dec 10 Python
Python Opencv实现图像轮廓识别功能
Mar 23 Python
Python 用matplotlib画以时间日期为x轴的图像
Aug 06 Python
Python通过cv2读取多个USB摄像头
Aug 28 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
Python 抓取数据存储到Redis中的操作
Jul 16 Python
Python实现简单的猜单词小游戏
Oct 28 Python
python使用BeautifulSoup 解析HTML
Apr 24 Python
Python下singleton模式的实现方法
Jul 16 #Python
python的迭代器与生成器实例详解
Jul 16 #Python
Python的内存泄漏及gc模块的使用分析
Jul 16 #Python
Python的垃圾回收机制深入分析
Jul 16 #Python
python中将字典转换成其json字符串
Jul 16 #Python
记录Django开发心得
Jul 16 #Python
Python实现动态添加类的属性或成员函数的解决方法
Jul 16 #Python
You might like
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
BootStrap中
2016/12/10 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
Python构造自定义方法来美化字典结构输出的示例
2016/06/16 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
大学生涯自我鉴定
2014/01/16 职场文书
机械设计毕业生自荐信
2014/02/02 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
个人查摆剖析材料
2014/10/04 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书