当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » Python  » Web编程
漂白

采集图片

漂白 发布于 2014年05月17日 21时, 7评/1721阅
分享到: 
收藏 +0
2
从某论坛采集帖子中上传的图片
BeautifulSoup需要另外安装 http://www.crummy.com/software/BeautifulSoup/#Download
标签: <无>

代码片段(1) [全屏查看所有代码]

1. [文件] getPics.py ~ 1KB     下载(8)     跳至 [1] [全屏预览]

#!/usr/bin/python 
#encoding='utf-8'
#runing under python 3.x
import urllib.request
from bs4 import BeautifulSoup
import os

def download(blocknum, blocksize, totalsize):
    '''回调函数
    @blocknum: 已经下载的数据块
    @blocksize: 数据块的大小
    @totalsize: 远程文件的大小
    '''
    percent = 100.0 * blocknum * blocksize / totalsize
    if percent > 100:
        percent = 100
    print("{0:3.2f}%%".format(percent))

timeout = 60
url = "http://"
socket = urllib.request.urlopen('http://newbbs.fengniao.com/showthread.php?p=23712356')
data = socket.read()
socket.close()
html = data.decode("utf-8")
soup = BeautifulSoup(html)
infoTags = soup.select('.mainContent')
for contentTag in infoTags:
    imgTag = contentTag.find('img')
    if imgTag == None:
        break
    fileURL = imgTag['src']
    pos = fileURL.rfind('/')
    fileName = fileURL[(pos+1):]
    localPath = "d:/pic/"
    if not os.path.isdir(localPath):
        os.makedirs(localPath)
    localPath += fileName
    print(localPath)
    urllib.request.urlretrieve(fileURL, localPath, download)


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(7)

  • 1楼:typhoon 发表于 2014-05-19 11:04 回复此评论
    html =  data.decode("utf-8") 然后就木有用到过哦
  • 2楼:漂白 发表于 2014-05-19 11:15 回复此评论

    引用来自“typhoon”的评论

    html =  data.decode("utf-8") 然后就木有用到过哦
    笔误 soup = BeautifulSoup(data) 改成 soup = BeautifulSoup(html)
  • 3楼:inpyth 发表于 2014-06-11 17:18 回复此评论
    LZ你好。为什么我运行结果提示:no module request 呢?
  • 4楼:漂白 发表于 2014-06-12 11:59 回复此评论

    引用来自“inpyth”的评论

    LZ你好。为什么我运行结果提示:no module request 呢?
    BeautifulSoup需要另外安装 http://www.crummy.com/software/BeautifulSoup/#Download
  • 5楼:dirtylook2012 发表于 2014-10-14 10:18 回复此评论
    Traceback (most recent call last):
      File "C:\Documents and Settings\Administrator\My Documents\Downloads\getPics (2).py", line 24, in <module>
        html = data.decode("utf-8")
      File "D:\Python27\lib\encodings\utf_8.py", line 16, in decode
        return codecs.utf_8_decode(input, errors, True)
    UnicodeDecodeError: 'utf8' codec can't decode byte 0xc2 in position 13722: invalid continuation byte
  • 6楼:漂白 发表于 2015-07-17 17:30 回复此评论

    引用来自“dirtylook2012”的评论

    Traceback (most recent call last):
      File "C:\Documents and Settings\Administrator\My Documents\Downloads\getPics (2).py", line 24, in <module>
        html = data.decode("utf-8")
      File "D:\Python27\lib\encodings\utf_8.py", line 16, in decode
        return codecs.utf_8_decode(input, errors, True)
    UnicodeDecodeError: 'utf8' codec can't decode byte 0xc2 in position 13722: invalid continuation byte
    你采集的网站不是UTF-8编码的吧 根据实际情况修改一下编码
  • 7楼:漂白 发表于 2018-01-30 10:54 回复此评论
    可以通过pip install BeautifulSoup来安装模块
开源从代码分享开始 分享代码
漂白的其它代码 全部(4)...