博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python爬取精美cos图
阅读量:3935 次
发布时间:2019-05-23

本文共 2408 字,大约阅读时间需要 8 分钟。

在这里插入图片描述

写一些水文应该不需要什么排版吧。

最近手机图片删光了,需要一些壁纸,恰好在CSDN上看见了一个cos网站。

不过看了众多分类,还是只有中国cos的分类比较好看,而且页码多,难怪别人都只爬这个分类。

import requestsfrom pyquery import PyQuery as pqimport reimport osimport threadingindex = 'http://www.cosplay8.com'def real_img_download(d, real_download_url):    try:        r = requests.get(real_download_url)        r.encoding = r.apparent_encoding        doc = pq(r.text)        imgs = doc('#bigimg')        # print(doc('#bigimg'))        for img in imgs.items():            imgurl = index + img.attr('src')            print(imgurl)            # print(imgurl[imgurl.rfind('/') + 1:])            with open(d + imgurl[imgurl.rfind('/') + 1:], 'wb') as f:                f.write(requests.get(imgurl).content)    except:        print('下载出错')def thumb_img_page(imgurl):    pre = imgurl[0:imgurl.rfind('.')]    try:        r = requests.get(imgurl)        r.encoding = r.apparent_encoding        doc = pq(r.text)        d = doc('h1.font24.yahei.white.normal').text() + '/'        print(d)        try:            os.mkdir('./' + d)        except:            pass        for i in range(1, int(re.findall("\d+", doc('div.pagebox > :first').text())[0]) + 1):            # print(pre+'_'+str(i)+'.html')            real_img_download(d, pre + '_' + str(i) + '.html')    except:        print('预览图出错')def index_page(index_url):    try:        r = requests.get(index_url)        r.encoding = r.apparent_encoding        doc = pq(r.text)        As = doc('div.pagew.center.hauto.pic_list > ul > li > a')        # print(As)        for a in As.items():            # print(a.attr('href'))            imgurl = index + a.attr('href')            thumb_img_page(imgurl)    except:        print('访问主页出错')def start_search(start, end):    for n in range(start, end):        url = 'http://www.cosplay8.com/pic/chinacos/list_22_' + str(n) + '.html'        index_page(url)def n_thread(total, n):    m = total // n  # 3    for i in range(n):        t = threading.Thread(target=start_search, args=((i - 1) * m + 1, m * i + 1))        t.start()            if total % n > 0:        t = threading.Thread(target=start_search, args=((n - 1) * m + 1, total + 1))        t.start()def main():    n_thread(60, 6)	#爬前60页,分6个线程if __name__ == '__main__':    main()

写代码已经很累了,懒得写注释,都是些基本操作,没有什么难度,这网站无反爬机制,连请求头都不用加,图片有些大,写这文章的时候还在怕爬,导致我这文章都卡卡的(电脑不太行)。

不知道是不是程序哪儿写得有问题,开多线程爬图片还是很慢,大神们自行更改,如果可以的话希望能评论区给点儿意见。(在下也是新手)

放一些还行的图片吧。(随便一张好看的都在5M大小以上,这里居然放不了,我去…初音未来

蕾姆

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

转载地址:http://kfqgn.baihongyu.com/

你可能感兴趣的文章
信息安全系统的组织管理
查看>>
项目时间管理脉络
查看>>
项目成本管理脉络
查看>>
项目质量管理脉络
查看>>
项目人力资源管理脉络
查看>>
项目沟通管理脉络
查看>>
项目风险管理脉络
查看>>
项目采购管理脉络
查看>>
项目管理总结
查看>>
java内存区域的分布
查看>>
Java跨平台的构思分析
查看>>
linux目录结构名称对照
查看>>
设计的理念
查看>>
多线程专题 - 脉络图
查看>>
javascript 函数,BOM
查看>>
javascript 客户端能力检测
查看>>
javascript DOM详解之DOM1
查看>>
javascript DOM扩展
查看>>
矛盾论读书笔记
查看>>
规则 - 利用CDN缓存
查看>>