堆糖网,图片壁纸网站,存在反爬,发现返回的json数据错乱严重,只能爬取部分数据,图片数据缺失很厉害,应用python进行图片抓取采集下载,一个多进程及多线程的使用例子。

网址入口

get方式,参数

json数据

运行效果

单线程

#www.duitang.com
#20200603 by WX:huguo00289# -*- coding: utf-8 -*-
from fake_useragent import UserAgent
import urllib.parse
import requests,time,os,jsondef ua():ua=UserAgent()headers={'User-Agent':ua.random,'Cookie': 'sessionid=ef6912ba-38d9-4b6e-a3d9-8d6526805f07; js=1; Hm_lvt_d8276dcc8bdfef6bb9d5bc9e3bcfcaf4=1590492733,1591182385; Hm_lpvt_d8276dcc8bdfef6bb9d5bc9e3bcfcaf4=1591182414'}#headers = {'User-Agent': ua.random}return headersdef get_imgs(i,keyword):kd=urllib.parse.quote(keyword)url=f"https://www.duitang.com/napi/blog/list/by_search/?kw={kd}&type=feed&include_fields=top_comments%2Cis_root%2Csource_link%2Citem%2Cbuyable%2Croot_id%2Cstatus%2Clike_count%2Clike_id%2Csender%2Calbum%2Creply_count%2Cfavorite_blog_id&_type=&start={24*i}&_=159118241418{i}"html=requests.get(url,headers=ua(),timeout=8).content.decode('utf-8')time.sleep(1)datas=json.loads(html)object_lists=datas['data']['object_list']print(len(object_lists))for object_list in object_lists:print(object_list)img_url=object_list['album']['covers'][0]img_name='%s%s'%(object_list['album']['id'],os.path.splitext(img_url)[1])print(img_url,img_name)down_img(img_url, img_name,keyword)def down_img(img_url,img_name,keyword):os.makedirs(f'{keyword}/',exist_ok=True)  #创建目录r=requests.get(img_url,headers=ua(),timeout=5)with open(f'{keyword}/{img_name}','wb') as f:f.write(r.content)print(f'>>>保存{img_name}图片成功!')def main(keyword):for i in range(1,10):print(f'>>>正在爬取第{i}页图片内容')get_imgs(i,keyword)print('采集图片完毕!')if __name__=='__main__':main("按钮")

多行程及多进程

#www.duitang.com
#20200603 by WX:huguo00289# -*- coding: utf-8 -*-
from fake_useragent import UserAgent
import urllib.parse
import requests,time,os,json
import threading  #多线程
import multiprocessing #多进程def ua():ua=UserAgent()headers={'User-Agent':ua.random,'Cookie': 'sessionid=ef6912ba-38d9-4b6e-a3d9-8d6526805f07; js=1; Hm_lvt_d8276dcc8bdfef6bb9d5bc9e3bcfcaf4=1590492733,1591182385; Hm_lpvt_d8276dcc8bdfef6bb9d5bc9e3bcfcaf4=1591182414'}#headers = {'User-Agent': ua.random}return headersdef get_imgs(num,keyword):kd=urllib.parse.quote(keyword)print(f'>>>正在爬取第{num}页图片内容')url=f"https://www.duitang.com/napi/blog/list/by_search/?kw={kd}&type=feed&include_fields=top_comments%2Cis_root%2Csource_link%2Citem%2Cbuyable%2Croot_id%2Cstatus%2Clike_count%2Clike_id%2Csender%2Calbum%2Creply_count%2Cfavorite_blog_id&_type=&start={24*num}&_=159118241418{num}"html=requests.get(url,headers=ua(),timeout=8).content.decode('utf-8')time.sleep(1)datas=json.loads(html)object_lists=datas['data']['object_list']print(len(object_lists))threads = []for object_list in object_lists:print(object_list)img_url=object_list['album']['covers'][0]img_name='%s%s'%(object_list['album']['id'],os.path.splitext(img_url)[1])print(img_url,img_name)t = threading.Thread(target=down_img, args=(img_url,img_name,keyword))threads.append(t)for i in threads:i.start()for i in threads:i.join()print(num, 'is ok')def down_img(img_url,img_name,keyword):os.makedirs(f'{keyword}/',exist_ok=True)  #创建目录r=requests.get(img_url,headers=ua(),timeout=5)with open(f'{keyword}/{img_name}','wb') as f:f.write(r.content)print(f'>>>保存{img_name}图片成功!')#单进程
def main(keyword):for i in range(1,10):get_imgs(i,keyword)print('采集图片完毕!')#多进程
def maindjc(keyword):pool = multiprocessing.Pool(processes=4)  # 开4个进程for i in range(1, 10):pool.apply_async(func=get_imgs, args=(i, keyword))pool.close()pool.join()print('采集图片完毕!')if __name__=='__main__':maindjc("美女")

参考来源:

[Python 爬虫]煎蛋网 OOXX 妹子图爬虫(2)——多线程+多进程下载图片

https://tendcode.com/article/jiandan-meizi-spider-2/

Python堆糖网图片爬虫,多进程及多线程的使用例子相关推荐

  1. 爬取推糖网图片小案例

    前言: 好久没有更新博文了,因为工作的关系,一直没有更新博文,今天有空,就给大家带来一个爬图片的小案例.今天的目标网站就是堆糖网,关于爬取这个网站图片的案例,肯定大家都看到很多,基本都是通过搜索图片的 ...

  2. 数据分析与爬虫实战视频——学习笔记(二)(千图网图片爬虫、fiddler抓包分析、腾讯视频评论爬虫、多线程爬虫(糗百))

    网址:[数据挖掘]2019年最新python3 数据分析与数据爬虫实战 https://www.bilibili.com/video/av22571713/?p=26 第三周第二节课 1抓包分析实战 ...

  3. 数据挖掘 (三)——基于python的当当网小爬虫

    导语 本文将实现利用Python爬取并简单地可视化分析当当网的图书数据. 详细的exe.源代码.程序解析等文件请关注公众号 行歌 知否, 回复关键词 当当网小爬虫 获取. 更多精彩内容请关注公众号 转 ...

  4. selenium爬堆糖网壁纸

    身为二刺螈真的一看到动漫手绘美图就想保存下来啊,堆糖上有很多好看的插画,试着用selenium爬了一下,并保存到本地. # coding--utf8 import selenium import ti ...

  5. python爬虫无敌简单案列之堆糖网的图片爬取

    导入模块: import requests import urllib.parse from urllib.request import urlretrieve 输入需要搜索的内容: num = 1 ...

  6. 用python写一个美女图片爬虫

    介绍 最近无聊学了一下python,决定打算用python写一个爬虫,既然要写爬虫,就写一个美女爬虫,养眼,哈哈..你们懂的 准备阶段 首先我们必须先找到一个有美女的网站,这里我以7kk网站为例子, ...

  7. 如何用python做比分网_python爬虫足球比分-yltg888

    python爬虫足球比分-yltg888 如果她拒绝了,她将会遭受到多少流言蜚语的攻击? "你不幼稚吗?"艾琳娜笑眯眯地问. 她要真这么做了,这位少爷绝对能气疯,然后实打实地一个月 ...

  8. python最新官网图片_Python轻松爬取Rosimm写真网站全部图片

    RosimmImage 有图有真相 def main_start(url): """ 爬虫入口,主要爬取操作 """ try: r = re ...

  9. python二手房课程设计_【Python】赶集网二手房爬虫 (可扩展)

    [Python] 纯文本查看 复制代码import requests import os from bs4 import BeautifulSoup class GanJi(): "&quo ...

  10. python最新官网图片_python爬取福利网站图片完整代码

    存起来 自己学习... import requests,bs4,re,os,threading class MeiNvTu: def __init__(self): self.url_main='ht ...

最新文章

  1. svn之Previous operation has not finished; run ‘cleanup‘ if it was interrupted解决办法
  2. 数字图像处理:图像的频域
  3. $dbms=mysql_Oracle dbms
  4. 爬虫演练-动态的抓取cp网站数据的演练-注意要反爬
  5. 关于linux交换分区的增大
  6. ubuntu程序安装方法
  7. linux中vim中文显示乱码
  8. 带你轻轻松松了解route-map
  9. WebRTC自适应控制算法
  10. 如何在电脑上临时登录微信,快来看这里!怎样在电脑上登录微信
  11. A Surface Defect Detection Method Based on Positive Samples
  12. js实现bilibili弹幕列表随视频播放滚动
  13. Django管理后台之登录
  14. 实验七 计数器及其应用
  15. 解决swagger几种报错问题
  16. 《调色师手册:电影和视频调色专业技法(第2版)》——往返工作流程(Round-Trip workflows)...
  17. 机器学习必备知识之皮尔森系数实现
  18. 【CSDN备份】exsi+iKuai+openwrt安装
  19. 【拯救赵明】全面防护网络攻击服务器负载及安全解决方案
  20. 使用Hbuilder+Xcode打包iOS app前期准备

热门文章

  1. DirectX12初始化三——DirectX图形基础结构,功能支持检测,资源驻留
  2. 三星r381android+wear,三星Gear 2 成功连接非三星手机详细教程
  3. 当AI学会共情,港科大新研究赋予Chatbot同理心 | 一周AI最火论文
  4. 圆形头像制作,仿QQ做法。
  5. 七牛云上传的视频通过外链播放黑屏问题
  6. 计算机桌面图片打不开显示内存不足,windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足解决方法...
  7. win7设置自动开机时间_使计算机自动开机
  8. Android仿人人客户端(v5.7.1)——消息中心视图的实现
  9. Redis总结笔记(总结自Redis开发与运维)
  10. 使用VMware虚拟机搭建Panabit透明网桥环境