python爬虫入门:获取在百度图片搜索的时候第一页的所有图片并下载

  • url为:
http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1460997499750_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=xxx

其中结尾的xxx代表要搜索的图片,比如:闪电侠等

  • 以下代码是,提醒要爬取什么图片之后,再自动下载采集,只采集其中的一页
# coding:utf8

import re
import requests
import os

name = input("请输入你想要的图片:")

url = "http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1460997499750_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word={}".format(name)

html = requests.get(url).text

image_path = os.path.join(os.path.dirname(__file__),"images/{}".format(name))

pic_url = re.findall('"objURL":"(.*?)",',html,re.S)

if not os.path.exists(image_path):
    os.makedirs(image_path)

i = 0
for each in pic_url:
    file_name = image_path + '/' + str(i) + '.jpg'
    print(each)
    try:
        pic = requests.get(each,timeout=10)
    except:
        print('当前图片无法下载')
        continue
    f = open(file_name,'wb')
    f.write(pic.content)
    f.close()
    i += 1
  • 上面的代码采用的是requests + re来获取到所有图片的链接,并下载,思路:
  1. requests获取到网页内容
  2. 用re正则来获取网页中图片的链接
  3. 再使用requests来下载图片
  • 注意
  1. 采用python3.6,python2的需要注意编码问题
  2. 如果没有requests包的话,请pip install requests安装

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java相关

nginx启动和配置

13950
来自专栏我是攻城师

elasticsearch的查询流程分析

52160
来自专栏PHP在线

php异步执行

开发中遇到了群发邮件慢的问题,找到了以下方法,还不错分享下: PHP异步执行的常用方式常见的有以下几种,可以根据各自优缺点进行选择: 1.客户端页面采用AJA...

780120
来自专栏猛牛哥的博客

nginx rewrite伪静态配置参数详解

44250
来自专栏cs

linux学习笔记三

文件组成 linux文件系统的运行和操作系统的文件组成有关,文件系统会将文件权限,属性放在inode(索引节点)中,至于实际的数据则放在block快中。另外还有...

366120
来自专栏Hongten

hibernate中的java对象有几种状态,其相互关系如何(区别和相互转换)

花了一些时间理解hibernate中的java对象的几种状态,很容易就懂了,这里记录一下,分享给大家!!

15330
来自专栏前端小叙

vue报错集锦

1、vue报错: 没安装 less-loader css-loader style-loader        可能的很大原因:没安装less 2、vuex报错...

45760
来自专栏Python

守护线程与守护进程

一 守护进程 主进程创建守护进程   其一:守护进程会在主进程代码执行结束后就终止   其二:守护进程内无法再开启子进程,否则抛出异常:AssertionErr...

32190
来自专栏python3

python3--中的进程操作--multiprocess模块

运行中的程序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程。多个进程可以实现...

11810
来自专栏Java进阶之路

nginx配置自定义变量实现日志动态分发

Nginx是一个异步框架的 Web服务器,也可以用作反向代理,负载平衡器 和 HTTP缓存。下载地址:www.nginx.org。

46820

扫码关注云+社区

领取腾讯云代金券