Python_爬虫_百度图片

百度图片有些有编码问题,暂时不能爬取,多试几个

#思路:抓取图片地址,根据地址转存图片(注意名称);难点:转码

# -*- coding:utf-8 -*-
from urllib import request,error
import json,re

# for page in range(4):
#     url = "http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%93%88%E5%A3%AB%E5%A5%87&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=%E5%93%88%E5%A3%AB%E5%A5%87&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn="+str(page*30)+"&rn=30&gsm=1e&1520997016315="
#     try:
#         response = request.urlopen(url).read().decode("utf-8")
#         print(type(response))
#
#     except error.URLError as e:
#         print(e.reason)
#
class BaiduImg(object):
    def __init__(self):
        super(BaiduImg,self).__init__()
        print(‘开始采集图片‘)
        self.page = 30
    def request(self):
        while self.page <= 30:
            request_url=‘http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%93%88%E5%A3%AB%E5%A5%87&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=%E5%93%88%E5%A3%AB%E5%A5%87&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=30&rn=30&gsm=1e&1520997014923=‘
            # print(len(request_url))
            headers = {
                ‘user-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36‘
                # ‘Content-type‘:‘text/html‘
                # ‘Content-type‘: ‘text/html‘
            }
            req=request.Request(request_url,headers=headers)
            with request.urlopen(req) as f:
                if f.status == 200:
                    content = f.read().decode(‘utf-8‘)
                    content_dict = json.loads(content)
                    self.download2(content_dict[‘data‘])
            self.page += 30
    #下载图片的方法
    def dowload(self,data):
        for image in data:
            if image.get(‘middleURL‘):
                url = image[‘middleURL‘]
            elif image.get(‘thumbURL‘):
                url = image[‘thumbURl‘]
            elif image.get(‘hoverURL‘):
                url = image[‘hoverURL‘]
            else:
                url=‘‘
            if url:
                data = request.urlopen(url).read()
                imageName = strip(image[‘fromPageTitleEnc‘])
                FileName = str(‘images/‘)+imageName+str(‘.jpg‘)
                with open(FileName,‘wb‘) as f:
                    f.write(data)
    #使用urllib.request.urlretrive()保存图片
    # 使用urllib.request.urlretrieve()保存图片
    def download2(self, data):
        for image in data:
            if image.get(‘middleURL‘):
                url = image[‘middleURL‘]
            elif image.get(‘thumbURL‘):
                url = image[‘thumbURL‘]
            else:
                url = ""
            if url:
                imageName = strip(image[‘fromPageTitleEnc‘])
                filePath = str(‘images/‘) + imageName + str(‘.jpg‘)
                request.urlretrieve(url, filePath)
#过滤函数
def strip(path):
    path = re.sub(r‘[?\\*|"<>:/!?]‘,‘‘,str(path))
    return path
if __name__ == ‘__main__‘:
    bi = BaiduImg()
    bi.request()

原文地址:https://www.cnblogs.com/hellangels333/p/8591684.html

时间: 2024-11-06 16:35:34

Python_爬虫_百度图片的相关文章

如何用Python爬虫实现百度图片自动下载?

Github:https://github.com/nnngu/LearningNotes 制作爬虫的步骤 制作一个爬虫一般分以下几个步骤: 分析需求 分析网页源代码,配合开发者工具 编写正则表达式或者XPath表达式 正式编写 python 爬虫代码 效果预览 运行效果如下: 存放图片的文件夹: 需求分析 我们的爬虫至少要实现两个功能:一是搜索图片,二是自动下载. 搜索图片:最容易想到的是爬百度图片的结果,我们就上百度图片看看: 随便搜索几个关键字,可以看到已经搜索出来很多张图片: 分析网页

python_爬虫_腾讯新闻app 单页新闻数据分析爬取

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "Helvetica Neue"; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "Helvetica Neue"; color: #000000; min-height: 12.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px;

Python_爬虫_数据解析回顾

--数据解析原理 --定位标签 --提取标签中存储的数据 --xpath解析原理 --实例化一个etree的对象且将解析的页面源码数据加载到该对象中 --通过xpath方法(返回值:列表)结合者xpath表达式进行数据解析 -- //tagName -- //tagName[@attr = 'value'] -- //tagName[index] -- /text() //text() -- /@attrName --bs4解析原理 --实例化一个bs4的对象且将解析的页面源码数据加载到该对象中

【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版-如何爬取百度图片?

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

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('请输入搜索关键

百度图片小爬虫

刚学习爬虫,写了一个百度图片爬虫当作练习. 环境:python3.6(请下好第三方库requests) 实现的功能:输入关键字,下载240张关键字有关的百度图片到本地的d:\百度图片\关键字\文件夹中. 百度图片的加载是ajax异步形式的,除了前面的一部分图片,后面靠下拉加载的图片都是异步从服务器端请求得到的.这些异步加载的图片的信息可以在一个个acjson的百度图片接口中,可以在开发者工具中xhr下找到这些文件. 接下来上代码: import requestsimport reimport o

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

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