代码笔记 | Python抓取并保存美女图片集

 
import requests
from bs4 import BeautifulSoup
import random
from datetime import date
import os
import threading
import sys,re
headers={
        "Referer":"http://www.mm131.com/",
        "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537."
    }
def getMM131Img(siteUrl):
    resp=requests.get(siteUrl)
    resp.encoding='gb2312'
    soup = BeautifulSoup(resp.text,'html5lib')
    dirname=soup.find('div',class_='content').h5.string
    pagecount=soup.find('div',class_='content-page').span.string
    tmpm = re.findall(r'\\d+',pagecount) #正则从字符串提取数字
    piccount=int(tmpm[0])
    imgStr=soup.find('div',class_='content-pic').img['src']
    prefix=imgStr[:imgStr.rfind("/")+1]
    picext="."+imgStr.split(".")[-1]
    resp.close()
    session=requests.Session()
    for img in [ prefix+str(i+1)+picext for i in range(piccount)]:
        name=img.split('/')
        if not dirname:
            dirname=date.today().strftime("%Y%m%d")
        if not os.path.exists('D:\\\\test\\\\images\\\\'+dirname) :
            os.mkdir('D:\\\\test\\\\images\\\\'+dirname)  
            filename='D:\\\\test\\\\images\\\\'+dirname+"\\\\"+str(random.randrange(1000))+name[len(name)-1]
           
        with open(filename,'wb') as f:
            print(img)
            try:
                resp1=session.get(img,headers=headers,timeout=30,stream=True)
                for chunk in resp1.iter_content(chunk_size=512):
                    f.write(chunk)
                resp1.close()
            except:
                print(sys.exc_info());
    session.close()      
    print("图片下载完成")
if __name__=='__main__':
    siteUrl=input('图片集url:') #比如输入 http://www.mm131.com/xinggan/1918.html
    t=threading.Thread(target=getMM131Img,args=(siteUrl,))
    t.start()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值