当前位置:   article > 正文

使用python爬取图片(爬取百度图片为例)_python爬取百度图片

python爬取百度图片

思路:

       1. 确定爬取的是哪一个url的图片,可F12来获取

     https://image.baidu.com/search/acjson 就是要爬取图片的url基地址

        2.获取需要传递的参数以及header信息复制出来待会会用到

3.对  urllib  的使用:urllib 通常用于网络资源的解析,比如把一个图片链接地址解析成一个图片

urllib.request.urlretrieve(url, "D:/a/壁纸/" + str(n) + '.jpg')

第一个参数是在线图片的地址,第二个是保存的地址,第三个是保存后的图片名字

4.对requests的使用

page_info = requests.get(url=url, headers=header, params=param)
page_info.encoding = 'utf-8'
page_info = page_info.json()
info_list = page_info['data']

话不多说直接开干 

  1. import time
  2. import requests
  3. import urllib
  4. page = input("请输入要爬取多少页:")
  5. page = int(page) + 1 #确保其至少是一页,因为 输入值可以是 0
  6. header = {
  7. 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
  8. }
  9. n = 0 # 图片的前缀 如 0.png
  10. pn = 1 # pn是从第几张图片获取 百度图片下滑时默认一次性显示30张
  11. for m in range(1, page):
  12. url = 'https://image.baidu.com/search/acjson?'
  13. param = {
  14. 'tn': 'resultjson_com',
  15. 'logid': '8846269338939606587',
  16. 'ipn': 'rj',
  17. 'ct': '201326592',
  18. 'is': '',
  19. 'fp': 'result',
  20. 'queryWord': '水果',
  21. 'cl': '2',
  22. 'lm': '-1',
  23. 'ie': 'utf-8',
  24. 'oe': 'utf-8',
  25. 'adpicid': '',
  26. 'st': '-1',
  27. 'z': '',
  28. 'ic': '',
  29. 'hd': '',
  30. 'latest': '',
  31. 'copyright': '',
  32. 'word': '水果',
  33. 's': '',
  34. 'se': '',
  35. 'tab': '',
  36. 'width': '',
  37. 'height': '',
  38. 'face': '0',
  39. 'istype': '2',
  40. 'qc': '',
  41. 'nc': '1',
  42. 'fr': '',
  43. 'expermode': '',
  44. 'force': '',
  45. 'cg': 'girl',
  46. 'pn': pn,
  47. 'rn': '30',
  48. 'gsm': '1e',
  49. }
  50. page_info= requests.get(url=url, headers=header, params=param)
  51. page_info.encoding = 'utf-8' #确保解析的格式是utf-8的
  52. page_info= page_info.json() #转化为json格式在后面可以遍历字典获取其值
  53. info_list = page_info['data'] #观察发现data中存在 需要用到的url地址
  54. del info_list[-1] #每一页的图片30张,下标是从 0 开始 29结束 ,那么请求的数据要删除第30个即 29为下标结束点
  55. img_path_list = []
  56. for i in info_list:
  57. img_path_list.append(i['thumbURL'])
  58. for index in range(len(img_path_list)):
  59. print(img_path_list[index]) #所有的图片的访问地址
  60. time.sleep(1)
  61. urllib.request.urlretrieve(img_path_list[index], "D:/a/壁纸/" + str(n) + '.jpg')
  62. n = n + 1
  63. pn += 29

总结:

        对于爬取图片,需要明白的是灵活的获取到爬取图片的地址以及参数和分析数据结构 

        

        

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

闽ICP备14008679号