为什么我用Python爬不到表情包

'''
思路
1,找到表情包网站
2,向网站发送获取数据的请求
3,过滤数据
4,下载数据
'''

import requests #发送请求
from lxml import etree #解析数据

1,找到表情包网站

url='https://www.doutub.com/img_lists/new/1'

2,向网站发送获取数据的请求

resp=requests.get(url)

网页源代码

print(resp.text) # <Response [200]> 请求成功

data = etree.HTML(resp.text)

3,过滤数据

img_list = data.xpath('//img[contains(@src,"http://")]')

4,下载数据 报存到本地

for img in img_list:
# 筛选表情包的图片
url = img.xpath('./@src')[0]
# 筛选表情包名字
name = img.xpath('./@alt')[0]
# 发送下载请求
image = requests.get(url)
# 保存到本地
with open('D:\python\学习.idea\bili学\vippython\表情包' + name + 'gif', 'wb') as f:
f.write("image.content")
print(name + '下载成功')

首先代码中在请求没有传递headers,另外在写入时也错误,是image.content,去掉引号。
代码这样写即可:

import requests
import time
headers = {
    
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36 Edg/98.0.1108.43',
    'sec-ch-ua-platform': '"Windows"',
    'Origin': 'https://www.doutub.com',    
    'Referer': 'https://www.doutub.com/',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
}

params = (
    ('keyword', '\u793E\u4F1A'),
)

response = requests.get(
    'https://api.doutub.com/api/bq/search', headers=headers, params=params)
img_list = [response.json()['data']['rows'][i]['path'] for i in range(len(response.json()['data']['rows']))]
print(img_list)
for i,img in enumerate(img_list[:3]):
    im=requests.get(img,headers=headers).content
    with open(f'datas/{img.rsplit("/")[-1]}','wb') as f:
        f.write(im)


如有帮助,请点采纳。

额,你写入文件的那一行,把"img.content"的冒号去掉,不然你写入的就是一个字符串。