吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2066|回复: 6
收起左侧

[Python 转载] 多线程贴吧图片爬虫

  [复制链接]
想要个妹妹 发表于 2020-8-5 12:57
本帖最后由 想要个妹妹 于 2020-8-5 12:59 编辑



✿

最近在琢磨python爬虫,抱着学习的态度尝试写了一个

经测试200张图片+重命名大概8秒




格式不太规范哈(忽略)也遇到了些问题

多线程futures下载的图片重命名1,2,3(出现了覆盖的问题)

后来用time.time()+random.random()双随机来解决覆盖

但肯定这是比较笨的方法,大家有什么好方法可以分享探讨一下
[Python] 纯文本查看 复制代码
import re 
import urllib.request
import time
from os import listdir,getcwd,rename
from concurrent import futures
import random

def getHtml(url):
    page = urllib.request.urlopen(url)
    html = page.read()
    return html

def getImg(a):
    reg = r'src="([.*\S]*.jpg)" size="'
    imgre = re.compile(reg)
    imglist = re.findall(imgre, a)
    return imglist

def getPage(a):
    reg = r'共<span class="red">([\w]*)</span>页'
    pagere = re.compile(reg)
    pagelist = re.findall(pagere, a)
    return pagelist

start = time.time()
url = "https://tieba.baidu.com/p/6279034183"
html = getHtml(url)
html = html.decode('UTF-8')
page = getPage(html)[0]
print("共{}页".format(page))
imgList = []
for i in range(1,int(page)+1):
    html = getHtml(url+"?%0d" % i)
    html = html.decode('UTF-8')
    imgList += getImg(html)
##imgName = 0
def saveOneImg(imgurl):
##    global imgName
##    print("现在下载第%0d张" %imgName)
    name = "pic/"+str(time.time())+str(random.random())+".jpg"
    print("download:"+name+"\n")
    f = open(name, "wb")
    f.write((urllib.request.urlopen(imgurl)).read())
    f.close()
##    imgName += 1
def saveManyImg(imgList):
    with futures.ThreadPoolExecutor(10) as executor:
        res = executor.map(saveOneImg, imgList)

##print(imgList[0])
saveManyImg(imgList)
print("重命名ing......")
j=0
for i in listdir(getcwd()+"//pic"):
    rename("pic//"+i,"pic//"+str(j)+".jpg")
    j+=1
print("All Done!")
stop = time.time()
print(stop-start)
1.JPG

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
枫子树 发表于 2020-8-5 14:31
提示: 作者被禁止或删除 内容自动屏蔽
t999ing 发表于 2020-8-5 14:31
5erlT 发表于 2020-8-5 14:51
你的明媚我的城 发表于 2020-8-5 15:19
有点意思的这个
djr1017 发表于 2020-8-6 15:40
学习一下
十里八乡俊后生 发表于 2020-11-14 20:07
不知道还能用不?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-17 05:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表