鱼C论坛

 找回密码
 立即注册
查看: 864|回复: 1

[作品展示] python之使用grequests爬取豆瓣TOP250图片封面

[复制链接]
发表于 2024-2-18 09:10:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用方法,需要在同级目录建立一个pics的文件夹,同时需要安装库grequests。
grequests安装方法如下:
在CMD中输入以下命令:
pip install grequests


话不多说,直接上代码:
import grequests
from pyquery import PyQuery
import pathlib

name = 1
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0"
}

for i in range(0, 226, 25):
    urls = f"https://movie.douban.com/top250?start={i}&filter="
    # print(urls)
    response = grequests.get(urls,headers=headers),
    get_ = grequests.map(response)
    contentt = get_[0].text
    # print(contentt)
    pyq = PyQuery(contentt)
    cc = pyq.find("img").items()
    for j in cc:
        # print(j.attr("src"))
        src_urls = j.attr("src")
        # print(src_urls)
        res = grequests.get(src_urls),
        resss = grequests.map(res)
        cont = resss[0].content
        path = pathlib.Path(f"pics/{name}.jpg")
        path.write_bytes(cont)
        name = name + 1



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-2-18 09:12:15 | 显示全部楼层
这段代码是使用grequests库来爬取豆瓣TOP250电影的封面图片,并将图片保存到同级目录下的"pics"文件夹中。首先,我们需要安装grequests库,在CMD中输入以下命令:pip install grequests。

接下来,就可以运行这段代码了。首先导入需要的库,包括grequests和pyquery。然后设置一个计数器name,用于给图片命名。

在循环中,我们通过设置不同的起始位置来获取不同页的电影信息。通过grequests库发送网络请求,获取到页面的HTML内容。然后使用pyquery库对HTML进行解析,找到所有的<img>标签。遍历这些标签,获取图片的URL,并再次使用grequests库发送请求,获取图片的二进制数据。

接下来,我们使用pathlib库创建一个路径对象,指定了保存图片的路径和文件名。然后使用.write_bytes()方法将图片的二进制数据写入该路径中。

最后,递增计数器name,以便下次保存下一张图片。代码执行完毕后,就可以在pics文件夹中看到保存的图片了。

需要注意的是,为了能够成功获取页面内容和图片数据,我们在发送请求时设置了一个User-Agent头部,模拟浏览器访问。这样可以规避一些反爬虫的措施。

希望这个代码能帮到你,如果还有其他问题,请随时提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 14:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表