cdsgg 发表于 2021-1-18 18:50

新手向百度图片爬虫没啥技术哈哈主要是我太菜了

import os
import requests
from urllib.parse import quote

kw = quote('表情包')#把文字编码成urlencode的

pn = 30# 一页等于30 两页等于60 以此类推

url = f'https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&word={kw}&pn={pn}&rn=30'# rn是一页显示多少个的意思

headers = {
    'Referer': 'https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&fm=result&pos=history&word=%E8%A1%A8%E6%83%85%E5%8C%85',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0',
    'Host': 'image.baidu.com'}

req = requests.get(url=url, headers=headers).json()

# print()
a = 1

for i in req['data']:
    try:
      print(i['thumbURL'])
      with open(f'{a}.{os.path.splitext(i["thumbURL"])[-1]}', 'wb') as f:# 这里我随便给图片数字的标题 你们喜欢的话可以随便弄无所谓的 os.path.splitext(i["thumbURL"])[-1] 获取后缀名
            f.write(requests.get(i['thumbURL']).content)
            f.close()
      a = a + 1
    except Exception as e:
      print(e)

也没啥技术含量 适合新手

大兵马元帅 发表于 2021-1-18 19:23

厉害,我学习python已经没有动力了,不知道学什么了

Jack-yu 发表于 2021-1-18 19:34

加油,早日成为Python大神

deyen 发表于 2021-1-18 20:14

同是新手,学习了学习了

hezongzhi 发表于 2021-1-25 13:56

问一下你这个代码怎么获取更多呢pn 我试了120 还是只有30个图片我想获取 第23456更多页的图片

cdsgg 发表于 2021-1-25 15:08

hezongzhi 发表于 2021-1-25 13:56
问一下你这个代码怎么获取更多呢pn 我试了120 还是只有30个图片我想获取 第23456更多页的图片

价格for 循环

ahehaoyu 发表于 2021-1-27 13:42

厉害了加油加油

learm 发表于 2021-6-16 13:56

我废了,环境都配置不好

wkh9527 发表于 2021-6-16 14:33

谢谢楼主,学到知识了

一条游泳的鱼 发表于 2021-6-18 13:42

感谢楼主分享
页: [1] 2
查看完整版本: 新手向百度图片爬虫没啥技术哈哈主要是我太菜了