百度图片小爬虫

刚学习爬虫,写了一个百度图片爬虫当作练习。

环境:python3.6(请下好第三方库requests)

实现的功能:输入关键字,下载240张关键字有关的百度图片到本地的d:\百度图片\关键字\文件夹中。

百度图片的加载是ajax异步形式的,除了前面的一部分图片,后面靠下拉加载的图片都是异步从服务器端请求得到的。这些异步加载的图片的信息可以在一个个acjson的百度图片接口中,可以在开发者工具中xhr下找到这些文件。

接下来上代码:

import requestsimport reimport os

def get_page_url(url, param):    response = requests.get(url, params=param)    response.encoding = ‘utf-8‘    return response.text

def parse_page(str):    pattern = re.compile(‘"middleURL":"(.*?)",‘)#利用正则匹配图片url    url_list = re.findall(pattern, str)    return url_list

def run(keyword, path):    url = "https://image.baidu.com/search/acjson"    i = 0    for j in range(30, 270, 30):        params = {"ipn": "rj", "tn": "resultjson_com", "word": keyword, "pn": str(j)}        html = get_page_url(url, params)        lists = parse_page(html)        print(lists)        for item in lists:            try:                img_data = requests.get(item, timeout=10).content                with open(path + "/" + str(i) + ".jpg", "wb") as f:                    f.write(img_data)                    f.close()                i = i+1            except requests.exceptions.ConnectionError:                print(‘can not download‘)                continue

def make_dir(keyword):    path = "D:/百度图片/"    path = path+keyword    is_exists = os.path.exists(path)    if not is_exists:        os.makedirs(path)        return path    else:        print(path + ‘目录已存在‘)        return path

def main():    keyword = input("input keyword about images you want to download: ")    path = make_dir(keyword)    run(keyword, path)

if __name__ == ‘__main__‘:    main()

原文地址:https://www.cnblogs.com/pmgd/p/8127580.html

时间: 2024-08-24 12:38:16

百度图片小爬虫的相关文章

python3 TensorFlow训练数据集准备 下载一些百度图片 入门级爬虫示例

从百度图片下载一些图片当做训练集,好久没写爬虫,生疏了.没有任何反爬,随便抓. 网页: 动态加载,往下划会出现更多的图片,一次大概30个.先找到保存每一张图片的json,其对应的url: 打开调试,清空,然后往下划.然后出现: 点击左侧的链接,出现右边的详细信息,对应的就是URL.对这个url做请求即可.以下是代码: # -*- coding: utf-8 -*- # import tensorflow as tf # import os # import numpy as np import

python图片小爬虫

import re import urllib import os def rename(name): name = name + '.jpg' return name def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.+?\.jpg)" pic_ext' imgre = re.compile(reg) imglist

美女图片小爬虫,嘿嘿

/** * Created by Administrator on 2016/9/22 0022. */ //依赖的模块 var http=require('http'); var fs=require('fs'); var cheerio=require('cheerio'); var request=require('request'); var iconv = require('iconv-lite'); var setParams={ initUrl:'http://www.mm131.

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

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

【Python网络爬虫四】多线程爬取多张百度图片的图片

最近看了女神的新剧<逃避虽然可耻但有用> 被大只萝莉萌的一脸一脸的,我们来爬一爬女神的皂片. 百度搜索结果:新恒结衣 1.下载简单页面 通过查看网页的html源码,分析得出,同一张图片共有4种链接: {"thumbURL":"http://img5.imgtn.bdimg.com/it/u=2243348409,3607039200&fm=23&gp=0.jpg", "middleURL":"http://i

【Python网络爬虫四】通过关键字爬取多张百度图片的图片

最近看了女神的新剧<逃避虽然可耻但有用>,同样男主也是一名程序员,所以很有共鸣 被大只萝莉萌的一脸一脸的,我们来爬一爬女神的皂片. 百度搜索结果:新恒结衣 本文主要分为4个部分: 1.下载简单页面 2.爬取多张图片 3.页面解码 4.爬取过程排错处理 1.下载简单页面 通过查看网页的html源码,分析得出,同一张图片共有4种链接: {"thumbURL":"http://img5.imgtn.bdimg.com/it/u=2243348409,3607039200

抓取百度贴吧python小爬虫 (2015最新版)

网上好多抓取贴吧的小爬虫都失效了,原因是百度贴吧的编码格式变了,或者是html代码变了,像这种简单的读取源代码的爬虫,只要网页源代码改变之后就得重新修改. 请诸位大牛指点. # -*- coding:utf8 -*- """ 程序就是读取网页的源代码,如果想获取相应的内容就找到其特定的格式,再利用正则表达式来获取. """ import string import urllib2 import re class html_Tool: #为了提取文

我是一只百度贴吧的小爬虫

总体功能:查看特定帖子楼主的发言(不包含图片) 前段时间大概看了python的语法,但是确实第一次用python来写东西.很久之前就想学python,学爬虫了,现在终于开始了!谢了自己的第一个爬虫,很开心O(∩_∩)O 觉得学东西兴趣很重要,爬虫真的好玩! 整个功能的实现含有两个类,一个是工具类Tool,另一个是百度贴吧的爬虫类BaiduTieba,提取网页的内容主要还是正则表达式.代码如下: # -*- coding:utf-8 -*- import urllib import urllib2

python写的百度图片爬虫

学了一下python正则表达式,写一个百度图片爬虫玩玩. 当技术遇上心术不正的人,就成我这样的2B青年了. python3.6开发,在Windows下需要安装vc2015动态库.下载地址:http://www.cr173.com/soft/146014.html 1 #/usr/bin/env python 2 #Guoyabin 3 #-*- coding:utf-8 -*- 4 import re,os 5 import requests 6 7 keyword=input('请输入搜索关键