爬取百度图片

# -*- coding: utf-8 -*-
"""
Created on Sun Sep 13 21:32:25 2020
@author: ydc
"""import re
import requests
from urllib import error
from bs4 import BeautifulSoup
import osnum = 0
numPicture = 0
file = ''
List = []def Find(url, A):global Listprint('正在检测图片总数,请稍等.....')t = 0i = 1s = 0while t < 1000:Url = url + str(t)try:# 这里搞了下Result = A.get(Url, timeout=7, allow_redirects=False)except BaseException:t = t + 60continueelse:result = Result.textpic_url = re.findall('"objURL":"(.*?)",', result, re.S)  # 先利用正则表达式找到图片urls += len(pic_url)if len(pic_url) == 0:breakelse:List.append(pic_url)t = t + 60return sdef recommend(url):Re = []try:html = requests.get(url, allow_redirects=False)except error.HTTPError as e:returnelse:html.encoding = 'utf-8'bsObj = BeautifulSoup(html.text, 'html.parser')div = bsObj.find('div', id='topRS')if div is not None:listA = div.findAll('a')for i in listA:if i is not None:Re.append(i.get_text())return Redef dowmloadPicture(html, keyword):global num# t =0pic_url = re.findall('"objURL":"(.*?)",', html, re.S)  # 先利用正则表达式找到图片urlprint('找到关键词:' + keyword + '的图片,即将开始下载图片...')for each in pic_url:print('正在下载第' + str(num + 1) + '张图片,图片地址:' + str(each))try:if each is not None:pic = requests.get(each, timeout=7)else:continueexcept BaseException:print('错误,当前图片无法下载')continueelse:string = file + r'\\' + keyword + '_' + str(num) + '.jpg'fp = open(string, 'wb')fp.write(pic.content)fp.close()num += 1if num >= numPicture:returnif __name__ == '__main__':  # 主函数入口############################### 这里加了点headers = {'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2','Connection': 'keep-alive','User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0','Upgrade-Insecure-Requests': '1'}A = requests.Session()A.headers = headers
###############################word = input("请输入搜索关键词(可以是人名,地名等): ")# add = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E5%BC%A0%E5%A4%A9%E7%88%B1&pn=120'url = 'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=' + word + '&pn='# 这里搞了下tot = Find(url, A)Recommend = recommend(url)  # 记录相关推荐print('经过检测%s类图片共有%d张' % (word, tot))numPicture = int(input('请输入想要下载的图片数量 '))file = input('请建立一个存储图片的文件夹,输入文件夹名称即可')y = os.path.exists(file)if y == 1:print('该文件已存在,请重新输入')file = input('请建立一个存储图片的文件夹,)输入文件夹名称即可')os.mkdir(file)else:os.mkdir(file)t = 0tmp = urlwhile t < numPicture:try:url = tmp + str(t)# 这里搞了下result = A.get(url, timeout=10, allow_redirects=False)except error.HTTPError as e:print('网络错误,请调整网络后重试')t = t + 60else:dowmloadPicture(result.text, word)t = t + 60print('当前搜索结束,感谢使用')print('猜你喜欢')for re in Recommend:print(re, end='  ')

爬取必应图片

import requests
from lxml import etree
import re
import timeheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}# 保存图片
def save_img(url):img_name = url[-10:]name = re.sub('/', '', img_name)  # img_name中出现/,将其置换成空try:res = requests.get(url, headers=headers)except OSError:print('出现错误,错误的url是:', url)else:with open('img/'+name, 'wb')as f:try:f.write(res.content)except OSError:print('无法保存,url是:', url)# 获取全部图片url
def parse_img(url):response = requests.get(url, headers=headers)response.encoding = response.apparent_encodingdata = response.content.decode('utf-8', 'ignore')html = etree.HTML(data)conda_list = html.xpath('//a[@class="iusc"]/@m')all_url = []    # 用来保存全部的urlfor i in conda_list:img_url = re.search('"murl":"(.*?)"', i).group(1)all_url.append(img_url)return all_url# 主函数
def main():for i in range(0, 120, 35):url = 'https://cn.bing.com/images/async?q=%E7%9F%BF%E6%B3%89%E6%B0%B4%E7%93%B6&first='+str(i)+'&count=35&relp=35&scenario=ImageBasicHover&datsrc=N_I&layout=RowBased&mmasync=1'img_data = parse_img(url)for img_url in img_data:save_img(img_url)print(img_url)time.sleep(10)if __name__ == '__main__':main()

【Python】爬取百度图片和必应图片相关推荐

  1. python爬取百度贴吧图片库_python爬取百度贴吧的图片2

    今天看了一下beautifulsoup库的用法,把昨天的python爬取百度贴吧的图片1的代码更新成使用beautifulsoup库的函数来实现.用的还是不太熟练,但是感觉比正则表达式写起来容易了一些 ...

  2. Python爬取百度壁纸图片

    Python爬取百度壁纸图片 #! /usr/bin/python -- coding: utf-8 -- @Author : declan @Time : 2020/05/31 16:29 @Fil ...

  3. 用python爬取动态网页上的图片(百度图片)

    用python爬取动态网页上的图片(百度图片) 参考B站一个视频,视频链接: https://www.bilibili.com/video/BV1Va4y1Y7fK?share_source=copy ...

  4. python爬取帖吧图片实验报告,Python爬取百度贴吧图片

    原标题:Python爬取百度贴吧图片 作者:MTbaby 来源:http://blog.csdn.net/mtbaby/article/details/70209729 描述:用Python爬去百度贴 ...

  5. python3爬虫爬取百度贴吧下载图片

    python3爬虫爬取百度贴吧下载图片 学习爬虫时没事做的小练习. 百度对爬虫还是很友好的,在爬取内容方面还是较为容易. 可以方便各位读者去百度贴吧一键下载每个楼主的图片,至于是什么类型的图片,就看你 ...

  6. Python爬取京东商品评论和图片下载

    Python爬取京东商品评论和图片下载 代码仅供学习使用,切勿扩散并且频繁爬取网站 贴上代码和注释,方便自己下次看 import requests import time import json im ...

  7. 教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中。(附源码)

    教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中.(附源码) 代码展示: 保存在各自的文件夹中 美么? 让我们开始爬虫之路 开发环境 windows 10 python3. ...

  8. 使用python爬取斗图网的图片

    使用python爬取斗图网的图片 以下是代码部分: # -*- coding: utf-8 -*- """ Created on Wed Apr 14 14:41:42 ...

  9. Python爬取百度图库

    Python爬取百度图库 页面分析 通过Chrome 的开发者模式,我们可以很发现 百度图库是通过ajax 加载图片的. 每一次都会发送一个请求:https://image.baidu.com/sea ...

  10. python爬百度翻译-Python爬取百度翻译(利用json提取数据)

    本篇文章给大家带来的内容是关于Python爬取百度翻译(利用json提取数据),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 工具:Python 3.6.5.PyCharm开发工具. ...

最新文章

  1. Failure [INSTALL_FAILED_ALREADY_EXISTS
  2. 【C++】类型转换简述:四种类型转换方式的说明及应用
  3. 处理数字_1_计算某列的最小/大值
  4. CPU单核多核区别【转载】
  5. 公司网络搭建及×××到公司配置
  6. oracle创建表空间、用户
  7. 201计算机基础知识,201年计算机应用基础备考练习题及答案
  8. 【转】通过IRQL看NT内核
  9. MySql Workbench表PK UN UQ B等字符的含义
  10. springboot starter的一个问题
  11. C#中IL反汇编工具的使用 其具体含义如下文
  12. 2.企业应用架构模式 --- 组织领域逻辑
  13. pandas dataframe统计填充空值大全
  14. 海外RPA企业盘点:谁是领导者,谁是挑战者?
  15. java sw_APDU格式详解
  16. 从零开始学写脚本(大麦网抢票 上)【第二天】
  17. C# 删除注册表信息
  18. 富爸爸实现财务自由七步骤
  19. Road Extraction by Deep Residual U-Net
  20. ASP.NET Web常用控件

热门文章

  1. python初级试题及答案
  2. 【从零开始学GIS再到精通GIS】ArcGIS中的绘图基操作(一)
  3. Mac修改shell版本(类型)
  4. RK平台之AI组件例程使用说明
  5. ipad无法充电怎么办_ipad无法充电无法开机怎么办 详细解决方法介绍【图文】
  6. TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }
  7. 2018第一次校队集训题解
  8. 美容行业竞争分析:2022年大型美容院成为市场主流
  9. 支持高性能计算场景,博云容器云打造智能算力引擎
  10. 一篇文章带你了解Linux