当前位置:   article > 正文

python3爬取百度图片_python爬取百度logo

python爬取百度logo

一.需要工具

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这个字段对应了图片链接,至此准备工作结束。

三.实现代码

  1. import re
  2. import urllib.request
  3. # 地址直接从浏览器拷过来
  4. 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"
  5. # 这个步骤可以分为三步(最终获取的是该链接的所有源代码)
  6. # 解析 urllib.request.urlopen(url)
  7. # 获取 read()
  8. # 转换编码 decode()
  9. html=urllib.request.urlopen(url).read().decode("utf8")
  10. # print(html)
  11. # 通过正则表达式,来获取图片链接(步骤二.(4))
  12. html = re.findall('"thumbURL":"(.*?)"', html, re.S)
  13. # print(html)
  14. index = 0
  15. # 保存图片的目录,注意目录不能是不存在的,否则会报错
  16. localPath = "F:\pythonLX\source\古风\\"
  17. # 设定只下载1000张,也可设得非常大,获取所有图片
  18. while index < 1000:
  19. for imgUrl in html:
  20. print('正在下载,第%d张:%s' %(index, imgUrl))
  21. # 将图片写入到本地
  22. urllib.request.urlretrieve(imgUrl, localPath + "第%d.jpg" % index)
  23. index += 1
  24. # 这步得目的就是变更网页地址(通过 pn 关键字),获取新的图片(步骤二.(2),(3))
  25. url = re.sub("&pn=\d+", "&pn=%d" % index, url)
  26. print(url)
  27. html = urllib.request.urlopen(url).read().decode("utf8")
  28. html = re.findall('"thumbURL":"(.*?)"', html, re.S)
  29. print("+++++++len:", len(html))

四.结尾

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/801107
推荐阅读
相关标签
  

闽ICP备14008679号