首页 > 编程语言 >python爬取百度图库多张图片

python爬取百度图库多张图片

时间:2022-12-28 17:40:56浏览次数:38  
标签:pic python 图库 爬取 url onepage fanye urls 图片


hello啊,各位小伙伴 ,眨眼间7月份过去了,八月已经悄然来临,不知道八月大家又立了什么样的flag,作为一个低产的公众号运营者,想想都是一阵莫名奇妙的辛酸,每月就三四篇文章,唉…不多说了,在这首先感谢大家对我的持续关注。

python爬取百度图库多张图片_百度


今天带来的文章是使用python爬取百度图库的案例,因为我们在处理文章或者寻求灵感的时候,总会用到一些图片,但是查找图片是一个让人觉得繁琐的过程,要么是上下格调不一,要么是主题类目不够清晰,在网页上找的图片还要来回翻阅,多少会有一定的麻烦,还是不如下载到本地直接查看方便的多。

今天小编给大家分享的是,如何使用代码获取百度图库的图片,实现利用关键词搜索进行图片下载的功能。至于百度图库的打开方式,不做过多赘述,不会的小哥请自行百度解决,找到后请输入自己想要搜索的相关关键词,提取下网址的链接,小编搜索的是“图片带字”,可以根据下面的图片看出word携带的参数是我们搜索的内容。

python爬取百度图库多张图片_百度_02

但是我们把网址复制出来后可以明显的看到word的参数是被进行转码过的,所以我们一定要记着对关键词进行转码,至于其他的分析和之前的思路差不多,具体请查看代码中的注释,废话不多说,请看代码:

import re
import urllib
import requests


def get_onepage_urls(onepageurl):
"""获取单个翻页的所有图片的urls+当前翻页的下一翻页的url"""
if not onepageurl:
print('已到最后一页, 结束')
return [], ''
try:
html = requests.get(onepageurl).text
except Exception as e:
print(e)
pic_urls = []
fanye_url = ''
return pic_urls, fanye_url
pic_urls = re.findall('"objURL":"(.*?)",', html, re.S)
fanye_urls = re.findall(re.compile(r'<a href="(.*)" class="n">下一页</a>'), html, flags=0)
fanye_url = 'http://image.baidu.com' + fanye_urls[0] if fanye_urls else ''
return pic_urls, fanye_url


def down_pic(pic_urls):
"""给出图片链接列表, 下载所有图片"""
for i, pic_url in enumerate(pic_urls):
try:
pic = requests.get(pic_url, timeout=15)
string = str(i + 1) + '.jpg'
with open(string, 'wb') as f:
f.write(pic.content)
print('成功下载第%s张图片: %s' % (str(i + 1), str(pic_url)))
except Exception as e:
print('下载第%s张图片时失败: %s' % (str(i + 1), str(pic_url)))
print(e)
continue


if __name__ == '__main__':
keyword = input("请输入搜索关键词:") # 关键词, 改为你想输入的词即可, 相当于在百度图片里搜索一样
url_init_first = r'http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1497491098685_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ctd=1497491098685%5E00_1519X735&word='
url_init = url_init_first + urllib.parse.quote(keyword, safe='/')
all_pic_urls = []
onepage_urls, fanye_url = get_onepage_urls(url_init)
all_pic_urls.extend(onepage_urls)


fanye_count = 0 # 累计翻页数
n = input("请输入翻页数:")
while fanye_count < int(n):
onepage_urls, fanye_url = get_onepage_urls(fanye_url)
fanye_count += 1
print('第%s页' % fanye_count)
if fanye_url == '' and onepage_urls == []:
break
all_pic_urls.extend(onepage_urls)


down_pic(list(set(all_pic_urls)))


标签:pic,python,图库,爬取,url,onepage,fanye,urls,图片
From: https://blog.51cto.com/u_15924937/5975813

相关文章

  • Python 通过关键词下载百度图片
    打开百度图片后,输入相关关键词,根据分析,发现百度图片初始只会渲染部分图像到页面上,随着滚轮下滚,就会请求新的数据,因此我们可以判断页面是经过ajax请求数据后,渲染至页面。百度......
  • Python 解析西瓜视频 | 无水印高清下载
    很多小伙伴都有使用西瓜视频,现在西瓜视频作为字节旗下的全家桶一员,拥有很多优质的视频,是很多自媒体小伙伴需要的。但是如何无水印下载这些西瓜视频呢?却让很多人为难,缺少这个......
  • Python 通过 requests 解析抖音直播源
    示例代码:importreimportsysimportrequestsDEBUG=Falseheaders={'authority':'v.douyin.com','user-agent':'Mozilla/5.0(iPhone;CPUiPhoneOS10_3_1l......
  • 使用Py的多线程爬取P站,老司机慎入。
    hello呀,小伙伴们,今个给大家带来的是爬取P站的教程,别搞错,这个不是你想的那个p站。这样想肯定是你用黄黄的思想点进来的。众所周知,P站是个插画网站,也包含一些R18的插画。停停......
  • Python批量下载公众号话题下音频文件
    宝宝喜欢听父母讲故事,年轻人喜欢听文章,年纪大的人喜欢听评书,很多人喜欢听不一样的东西,文案能够从文字转化成为语言说出去,那么效果肯定是大有不同。想必在日常生活中,大家都可......
  • Python 多进程下载站点所有小说
    小说,宅男必备,也是当今社会人们打发时间的一种方式。今天给大家分享的,喜欢看小说的同学可以收藏起来了!!目标站点:https://www.zhenhunxiaoshuo.com爬取思路:获取站点分类下的书......
  • python版抖音短视频无水印下载
    如今,各类短视频应用已融入不少人的日常生活。短短几个镜头,可仰望浩瀚星空,也可俯瞰市井烟火;能近距离观察社会肌理,也能深度透视时代景深。点开视频,领略城乡风貌,了解风土人情,足......
  • 使用xpath爬取对应百度贴吧下面的帖子图片
    hello,小伙伴们,上次给大家分享了如何使用python的正则匹配爬取百思不得姐的网站代码,虽然说正则匹配爬取网站的执行效率高,但是正则匹配的规则编写着实是令人头痛的一件事。今......
  • 利用python爬取百思不得姐demo实例
    作为一个刚接触爬虫的小白,在学习了一定的语法后,第一个目标就是找一个适合初学者的网站来小试牛刀。一般来讲都会选择一个难度系数比较低的网站来进行爬取,这样不仅有助于我们......
  • 利用bs4爬取传智的讲师团队信息
    终于五一了,好不容易迎来了小长假,首先在这里恭祝大家节日快乐,劳动人民最可爱,向劳动人民致敬,在这也祝愿大家的付出都能够得到回报。面对疫情后的复工复产,想必大家现在恨不得全......