python3爬取百度图片

一.需要工具

1.python3
2.pycharm
3.谷歌浏览器

注:不想深究想直接拿来用的,可以跳过操作步骤,直接看结尾说明,只要是百度图片都是共用的。

二.操作步骤

(1).打开浏览器,点击百度图片,并搜索,如图:
在这里插入图片描述
(2).按F12进入控制台,依次点击Network->XHR,然后鼠标移到有图片的网页上,滑轮向下划几下,会出现acjson关键字的信息,这些就是由js控制生成的网页信息。找出两段带acjson的信息,点开 Headers,找到下面的Query String Paraments,对比该字段下的所有属性,最终找出一个 pn字段,该字段会随着网页下滑而数值增加。So,找到关键字点。
在这里插入图片描述
(3).我们可以利用 pn关键字来改变要显示图片次序,比如在网址后加上&pn=120,就表示从第120张图片开始显示,如图:
在这里插入图片描述
(4).这一步解决获取图片url的问题:

  • 首先打开网页的js文件,搜索.jpg(为啥是jpg这个可以通过控制台查看)
  • 然后找到图片的链接,以及该链接的key
    如图

在这里插入图片描述
我们最终找到js中, thumbURL这个字段对应了图片链接,至此准备工作结束。

三.实现代码


import re
import urllib.request
# 地址直接从浏览器拷过来
url="https://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gb18030&word=%B9%C5%B7%E7&fr=ala&ala=1&alatpl=adress&pos=0&hs=2&xthttps=111111&pn=0"
# 这个步骤可以分为三步(最终获取的是该链接的所有源代码)
# 解析 urllib.request.urlopen(url)
# 获取 read()
# 转换编码 decode()
html=urllib.request.urlopen(url).read().decode("utf8")
# print(html)
# 通过正则表达式,来获取图片链接(步骤二.(4))
html = re.findall('"thumbURL":"(.*?)"', html, re.S)
# print(html)

index = 0
# 保存图片的目录,注意目录不能是不存在的,否则会报错
localPath = "F:\pythonLX\source\古风\\"
# 设定只下载1000张,也可设得非常大,获取所有图片
while index < 1000:
    for imgUrl in html:
        print('正在下载,第%d张:%s' %(index, imgUrl))
        # 将图片写入到本地
        urllib.request.urlretrieve(imgUrl, localPath + "第%d.jpg" % index)
        index += 1
    # 这步得目的就是变更网页地址(通过 pn 关键字),获取新的图片(步骤二.(2),(3))
    url = re.sub("&pn=\d+", "&pn=%d" % index, url)
    print(url)
    html = urllib.request.urlopen(url).read().decode("utf8")
    html = re.findall('"thumbURL":"(.*?)"', html, re.S)
    print("+++++++len:", len(html))

四.结尾

本文章的关键点在于 如何获取 改变 网址的关键字,以及获取图片链接, 不过这些都是共用的,如果不想深入了解,有点基础的读者可以直接把代码拿来用也行,只要修改2处即可:
1.初始url
2.保存目录 localPath
就这样了,有不懂的可留言。

Python爬虫可以用来自动爬取百度图片,实现批量下载图片的功能。通过使用Python编程语言和相关的库函数,我们可以编写爬虫脚本来完成这个任务。 Python在爬虫领域非常常用,因为它有着丰富的库函数和强大的功能,特别是在人工智能和图像处理方面有着突出的表现。 在爬取百度图片时,我们需要注意到百度图片的翻页方式是瀑布流,通过滚动滑轮触发JS进行异步加载,而不是之前的点击下一页的方式。这给爬虫增加了一定的难度。但是通过之前的文章,我们可以找到一篇描述了爬取百度图片的方法,其中介绍的方式可能还是之前的点击下一页的方式。 因此,如果你对爬虫有兴趣,可以尝试使用Python编写一个爬取百度图片的脚本,通过学习和实践,你可以更深入地了解爬虫的知识和应用。同时,你也可以不定期关注爬虫实例和教程,以获得更多的学习和交流的机会。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python 爬虫(1)--爬取百度图片,你确定不来看一看](https://blog.csdn.net/weixin_46897073/article/details/111827736)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值