f12查看网页源码,当下拉的时候会出现ajax请求

点击上图中的url,在headers最后一栏,比对后发现网页的url基本相同除了page会变

以下是源码

import requests, os
from urllib.parse import urlencode
from bs4 import BeautifulSoup as bs
from selenium import webdriver
from hashlib import md5
from multiprocessing.pool import Pool #设置爬取页数
GROUP_START = 1
GROUP_END = 5def get_image(page):browser = webdriver.PhantomJS()base_url = 'http://huaban.com/search/?'params = {'q': '水滴','type': 'pins','jk3p8ngq': '','page': page,'per_page': '20','wfl': '1',}url = base_url + urlencode(params)browser = webdriver.PhantomJS()browser.get(url)html = browser.page_source  soup = bs(html, 'lxml')print(soup.title.string)doc = soup.find(attrs={'id': 'waterfall'})for items in doc.children:if items.img:yield{'title': items.a.string,'image': items.img['src']}def save_image(item):if not os.path.exists(item['title']):   #判断路径是否存在os.mkdir(item['title'])             #如果不存在新建文件夹try:image_url = item['image']rsp = requests.get('http:' + image_url)if rsp.status_code == 200:file_path = '{0}/{1}.{2}'.format(item['title'], md5(rsp.content).hexdigest(), 'jpg')if not os.path.exists(file_path):with open(file_path, 'wb') as f:f.write(rsp.content)else:print('Already dowmload', file_path)except requests.ConnectionError:print('Fail to download image')def main(page):for item in get_image(page):if item['title'] != None:print(item)save_image(item)if __name__ == '__main__':pool = Pool()groups = ([x for x in range(GROUP_START, GROUP_END)])pool.map(main, groups)pool.close()pool.join()

开始网页请求是用requests,但是得不到网页源码,所以改用Phantom JS

参考  python3 网络爬虫开发实战

爬取花瓣网并批量下载图片相关推荐

  1. python3爬虫系列16之多线程爬取汽车之家批量下载图片

    python3爬虫系列16之多线程爬取汽车之家批量下载图片 1.前言 上一篇呢,python3爬虫系列14之爬虫增速多线程,线程池,队列的用法(通俗易懂),主要介绍了线程,多线程,和两个线程池的使用. ...

  2. python 批量下载网页图片_手把手教你爬取天堂网1920*1080大图片(批量下载)——实战篇|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ /1 前言/ 上篇文章 手把手教你爬取天堂网1920*1080大图片(批量下载)--理论篇我们谈及了天堂网 ...

  3. python批量下载文件教程_零基础Python教程:教你爬取天堂网1920*1080大图片(批量下载)...

    这篇文章将针对上篇文章的未尽事宜进行完善,完成图片的批量抓取. /2 图片网址解析/ 1. 我们首先来分析一下这个图片的地址在哪里.我们选择图片,然后右击网页检查,可以看到图片的路径,如下图所示. 2 ...

  4. 怎么批量在数字里加入网页_手把手教你爬取天堂网1920*1080大图片(批量下载)——理论篇

    /1 前言/ 平时我们要下载图片,要要一个一个点击下载是不是觉得很麻烦?那有没有更加简便的方法呢?答案是肯定的,这里我们以天堂网为例,批量下载天堂网的图片. /2 项目准备工作/ 首先 我们第一步我们 ...

  5. 手把手教你爬取天堂网1920*1080大图片(批量下载)——理论篇

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 不经一番寒彻骨,怎得梅花扑鼻香. ...

  6. 手把手教你爬取天堂网1920*1080大图片(批量下载)

    /1 前言/ 平时我们要下载图片,要要一个一个点击下载是不是觉得很麻烦?那有没有更加简便的方法呢?答案是肯定的,这里我们以天堂网为例,批量下载天堂网的图片. /2 项目准备工作/ 首先 我们第一步我们 ...

  7. java的简单网络爬虫(爬取花瓣网的图片)

    因为本人对爬虫比较感兴趣,加上之前也写过一些简单的python爬虫,所以在学完java基础后写了一个简单的网络图片爬虫.废话不多说直接上过程代码.(爬取的图源来自花瓣网:https://huaban. ...

  8. Scrapy--使用phantomjs爬取花瓣网图片

    新建一个scrapy工程 (python35) ubuntu@ubuntu:~/scrapy_project$ scrapy startproject huaban 添加一个spider (pytho ...

  9. Python3 urllib 爬取 花瓣网图片

    点我去我的github上看源码 **花瓣网是动态的,所以要抓包分析,但我真的累的不行,不想写教程了,我源码里有注释

  10. selenium爬取优酷页面并下载图片

    1 from selenium import webdriver 2 import requests 3 driver = webdriver.Chrome() 4 #打开优酷 5 driver.ge ...

最新文章

  1. iOS三种拨打电话的方法
  2. 2013-3-10日记
  3. MySQL中的主键、唯一键、外键对比
  4. 21位花朵数 C语言(执行时间小于16s)
  5. windows7出现MTP usb设备驱动安装问题解决方法
  6. 一个莫名的人,竞标,教训,韩国女人
  7. 在Django将已有数据库生成models文件
  8. scala基本类型和成员定义
  9. IOC 容器中那些鲜为人知的细节(关于 FactoryBean 和 BeanFactory)
  10. CSS3+JS实现静态圆形进度条【清晰、易懂】
  11. hdu 二分图最大匹配问题 (hdu 1083)
  12. 10、一篇经典的域渗透文章
  13. pycharm怎么安装pygame_Python实战:运用Pygame编写Flappy bird小游戏,我能玩一天
  14. 局域网简易聊天服务器&客户端
  15. Matlab图窗保存为pdf文件
  16. 玩转华为ENSP模拟器系列 | 配置OSPFv3 ABR路由聚合示例
  17. 猿创征文 |汇编语言基础知识
  18. 大数据Kudu使用方法
  19. 20144306《网络对抗》MAL_恶意代码分析
  20. 北京联通dns服务器位置,ipv6北京联通dns服务器地址

热门文章

  1. 如何把windowsXP系统主题成Windows7风格windowsxp主题包
  2. vim 的配置详解/键盘映射配置详解
  3. Linux查看网卡驱动|更新驱动
  4. linux设置汉语输入法,在Deepin系统下使用韩语(韩文)输入法的方法
  5. 拆t460拆机图解_ThinkPad T460P评测,二楼附ThinkPad T460P拆机图
  6. SVN上库前检查(钩子程序)
  7. 实时音频编解码之二编码学数学知识
  8. 奇妙的数字-2015省赛C语言A组第三题
  9. 创建计算机桌面快捷方式图标异常,桌面快捷方式图标显示异常,win7无法正常显示桌面图标怎么办?...
  10. 计算机桌面快捷方式误删了,电脑把桌面快捷方式删除了怎么办?电脑快捷方式删除了的恢复方法...