翻页式爬取百度图片

小编大约于这个月月初写的这一份代码,但很不幸,大概20号,再次找百度图片翻页流的时候,发现是瀑布流且回不去了,还好代码里面留了翻页流的网址

所以,现在来分享给大家。

语言:python3.6

库:requests, re, urllib

除了requests需要pip install之外,其他两个是python自带的模块,直接调用即可。

代码中的原网址:https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=小姐姐&pn=0

直接复制网址可以浏览百度图片翻页流的小姐姐的照片的第一页。好了,代码在下面,详情请见注释。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
# Author:water_chen

import requests
import re
from urllib import request

def get_picture_list(keyword,biggest_pages):
    all_picture_list = []
    for page in range(biggest_pages):     # 每一页20张图片, 所以翻页的是0 20 40 80 这样变化的
        page = page * 20
        url = ‘https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word={}&pn={}‘.format(keyword, page)
     #
        html = requests.get(url).content.decode(‘utf-8‘)

        picture_list = re.findall(‘{"thumbURL":"(.*?)",‘, html)# 用正则匹配,获得图片的url

        all_picture_list.extend(picture_list)
  all_picture_list = set(all_picture_list)# 因为第二页也有后面两页的图片,所以要去重  download_picture(all_picture_list)
# 下载图片
def download_picture(all_picture_list):
    for i, pic_url in enumerate(all_picture_list):
        print(i)     # 在代码的路径下,新建一个picture,图片会由urlretrieve函数保存到本地
        string = ‘picture/{}.jpg‘.format(str(i + 1))
        request.urlretrieve(pic_url, string)
# 开始函数
def start():   # 你想搜索的关键词
    keyword = ‘小姐姐‘   # 你想搜索的页数
    biggest_pages = 10
    get_picture_list(keyword, biggest_pages)
if __name__ == ‘__main__‘:
    start()

大家赶快保存这个翻页流的网址,现在的百度图片是瀑布流,如果要爬,就需要selenium对网页进行滚动,比较麻烦,这个代码能够比较容易的获取。

如果有用,请大家点个赞,谢谢。

原文地址:https://www.cnblogs.com/chenyuan404/p/10192758.html

时间: 2024-07-30 08:41:31

翻页式爬取百度图片的相关文章

百度图片爬虫-python版-如何爬取百度图片?

上一篇我写了如何爬取百度网盘的爬虫,在这里还是重温一下,把链接附上: http://5912119.blog.51cto.com/5902119/1771391 这一篇我想写写如何爬取百度图片的爬虫,这个爬虫也是:搜搜gif(在线制作功能点我) 的爬虫代码,其实爬虫整体框架还是差不多的,但就是会涉及到图片的的一些处理,还是花费了我不少时间的,所以我请阅读的本爬虫的孩子还是认真一些,毕竟程序猿都不容易啊.好的,我也不想多说,爬虫的代码我会分享到去转盘网,想下载本爬虫代码的孩子请点我下载,如果没有下

python 爬取百度图片

# coding=utf-8 """根据搜索词下载百度图片""" import re import sys import urllib import requests def get_onepage_urls(onepageurl): """获取单个翻页的所有图片的urls+当前翻页的下一翻页的url""" if not onepageurl: print('已到最后一页, 结束') r

python爬虫之爬取百度图片

##author:wuhao##爬取指定页码的图片,如果需要爬取某一类的所有图片,整体框架不变,但需要另作分析#import urllib.requestimport urllib.parseimport reimport os#添加header header=\ { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87

【Python】爬取百度图片进行人脸识别

import os,cv2,requests,json,re,time import tensorflow as tf from bs4 import BeautifulSoup def check_path(path): try: a = [] for i in path.split('/'): if i != '': a.append(i) path = '/'.join(a) except: pass return path def decrypt_objURL(str): ""

爬取动态图片—以百度图片为例

一:何谓动态加载图片 所谓动态加载图片即指html刚加载时,图片时没有的,然后通过json发生有关图片的数据,在插入到html里面去,以到底快速打开网页的目的,那么问题来了?我们如何找到加载文件的json文件呢?而这个问题正是我们实现爬取百度图片的第一步,让小可爱告诉你怎么做吧. 我们以表情包这个关键字为例,如下图 小可爱在百度图片搜索表情包来到上图页面,然后按F12来到开发者页面, 我们点击二个json文件 如: ①https://image.baidu.com/search/acjson?t

使用Selenium爬取百度文库word文章

转载请注明作者和出处: http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 前言 问题分析 预备知识 1 Selenium 11 简介 12 安装 13 基础知识 131 小试牛刀 132 模拟提交 133 元素选取 134 界面交互 135 添加User-Agent 2 Xpath 动手实战 1 页面切换 2 内容爬取 3 整体代码 总结 1 前言 大家都应该有过从百度文库下载

Python爬虫实战二之爬取百度贴吧帖子

大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不好使,八成是正则表达式那儿匹配不到了,请更改一下正则,当然最主要的还是帮助大家理解思路. 2016/12/2 本篇目标 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3.将抓取到的内容分析并保存到文件 1.URL格式的确定 首先,我们先观察一下百度贴吧的任意一个帖子. 比如:ht

Scrapy爬取美女图片 (原创)

有半个月没有更新了,最近确实有点忙.先是华为的比赛,接着实验室又有项目,然后又学习了一些新的知识,所以没有更新文章.为了表达我的歉意,我给大家来一波福利... 今天咱们说的是爬虫框架.之前我使用python爬取慕课网的视频,是根据爬虫的机制,自己手工定制的,感觉没有那么高大上,所以我最近玩了玩 python中强大的爬虫框架Scrapy. Scrapy是一个用 Python 写的 Crawler Framework ,简单轻巧,并且非常方便.Scrapy 使用 Twisted 这个异步网络库来处理

Scrapy爬取美女图片续集 (原创)

上一篇咱们讲解了Scrapy的工作机制和如何使用Scrapy爬取美女图片,而今天接着讲解Scrapy爬取美女图片,不过采取了不同的方式和代码实现,对Scrapy的功能进行更深入的运用. 在学习Scrapy官方文档的过程中,发现Scrapy自身实现了图片和文件的下载功能,不需要咱们之前自己实现图片的下载(不过原理都一样). 在官方文档中,我们可以看到下面一些话:Scrapy为下载item中包含的文件(比如在爬取到产品时,同时也想保存对应的图片)提供了一个可重用的 item pipelines .