首页 > 编程语言 >写一段python爬虫下载登录用户商品图片的代码

写一段python爬虫下载登录用户商品图片的代码

时间:2023-07-28 14:25:44浏览次数:41  
标签:登录 python image 爬虫 url session path login

要下载登录用户的商品图片,你需要模拟登录网站并获取登录后的会话。下面是一个示例代码,用于登录网站并下载登录用户的商品图片:

import requests
import os
from bs4 import BeautifulSoup

def login(username, password):
    login_url = "https://example.com/login"
    session = requests.Session()

    # 构造登录表单数据
    login_data = {
        "username": username,
        "password": password
    }

    # 发送POST请求进行登录
    response = session.post(login_url, data=login_data)
    if response.status_code == 200:
        print("登录成功")
    else:
        print("登录失败")

    return session

def download_image(url, save_path, session):
    response = session.get(url)
    if response.status_code == 200:
        with open(save_path, 'wb') as f:
            f.write(response.content)
        print("图片下载成功:", save_path)
    else:
        print("图片下载失败")

def main():
    # 登录用户的用户名和密码
    username = "your_username"
    password = "your_password"

    # 创建会话并登录
    session = login(username, password)

    # 登录后的页面的URL
    logged_in_url = "https://example.com/logged_in_page"

    # 发送GET请求获取登录后的页面的HTML内容
    response = session.get(logged_in_url)
    if response.status_code == 200:
        # 使用BeautifulSoup解析HTML内容
        soup = BeautifulSoup(response.content, "html.parser")
        # 查找所有商品图片的标签
        image_tags = soup.find_all("img")

        for img in image_tags:
            # 获取商品图片的URL
            image_url = img["src"]
            # 保存图片的文件名
            image_filename = image_url.split("/")[-1]
            # 保存图片的路径
            save_path = "path/to/save/" + image_filename

            # 创建保存图片的文件夹
            os.makedirs(os.path.dirname(save_path), exist_ok=True)

            # 下载图片
            download_image(image_url, save_path, session)
    else:
        print("无法获取登录后的页面")

if __name__ == "__main__":
    main()

在上述代码中,我们定义了一个login函数,用于模拟登录网站。我们使用requests库的Session对象来保持会话,并发送POST请求来进行登录。登录成功后,会返回一个登录后的会话对象。

main函数中,你需要将usernamepassword替换为实际的登录用户的用户名和密码。然后,我们使用登录后的会话对象发送GET请求获取登录后的页面的HTML内容,并使用BeautifulSoup库解析HTML内容。接下来,我们查找所有商品图片的标签,并依次下载图片。

请确保在运行代码之前已安装requestsbeautifulsoup4库,可以通过pip install requests beautifulsoup4命令进行安装。同时,根据实际情况修改登录页面的URL、登录表单数据、登录后的页面的URL和保存图片的路径。

标签:登录,python,image,爬虫,url,session,path,login
From: https://www.cnblogs.com/51testing/p/17587451.html

相关文章

  • # mac 使用 Docker 部署Python服务和web app服务最佳实践~保姆级教程
    目录部署Python后端服务部署python服务最佳实践部署web前端应用Docker同步到另一台设备部署Python后端服务部署python服务拉取python镜像dockerpullpython:3.9.13查看镜像dockerimages运行容器dockerrun-p9000:8080-it--namepytest-v~/PycharmPr......
  • Mac+Python+youtube_dl下载国外网站视频遇到的坑以及解决方案
    一、问题描述想使用Python中的youtube_dl下载youtube的视频,源码如下:importyoutube_dllink=['https://www.youtube.com/shorts/xxx']withyoutube_dl.YoutubeDL()asydl:ydl.download(link)  但是下载的时候报错了,报错如下:  youtube_dl.utils.Download......
  • 爬虫 | 美食数据抓取
    本实验将为大家介绍接口爬取的相关知识,通过实验楼课程列表页与IT之家动态页,讲解如何通过开发者工具快速判断数据来源。实验过程将通过爬取美食网、实验楼社区两个案例,说明如何针对接口编写爬虫。知识点接口(API)爬取知识美食案例实操实验楼社区案例实操接口(API)爬取知识......
  • MegEngine Python 层模块串讲(中)
    在前面的文章中,我们简单介绍了在 MegEngineimperative 中的各模块以及它们的作用。对于新用户而言可能不太了解各个模块的使用方法,对于模块的结构和原理也是一头雾水。Python 作为现在深度学习领域的主流编程语言,其相关的模块自然也是深度学习框架的重中之重。模块串讲将对 ......
  • python 读写文件内容包含中文
    encoding="utf-8"#文件内容:#11111,ssss,eee,哈哈哈电话,hhh#11111,ssss,eee,哈哈哈电话,hhh#11111,ssss,eee,哈哈哈电话,hhhh#打开输入文件encoding="utf-8"解决中文乱码withopen('D:\\PCCW_Test_Script\\22.txt','r',encoding="utf-8&quo......
  • 关于python中对np.array数据进行元素操作的讨论(形参与实参)
    最近发现了python中,如果将np.array(ndarray)类型的数据作为实参,传递给形参时,实参和形参会同时改变。例如下面的代码:importnumpyasnpnum=np.array([[1,2],[3,4]])deftest(a):a[0,1]=9print(a)test(num)print(num)输出结果:[[19][34]][[19][34]]会发......
  • ubuntu 使用vsftpd 创建FTP服务(用户名密码登录,限制列出目录)
    vsftpd介绍ubuntu安装vsftpd配置vsftpd备份vsftpdconfig编辑vsftpdconfig创建登录用户添加vsftpd登录用户添加vsftpd登录用户对目录树的权限重启vsftpd服务验证ftp服务vsftpd介绍vsftpd是“verysecureFTPdaemon”的缩写,安全性是它的一个最大的特点。vsftpd是一个UNIX......
  • 【Python】数字取反(相反数)的几种方法
     方法一:绝对值if__name__=="__main__":"""run"""print("负数取反-绝对值:{}".format(abs(-28)))print("正数数取反-绝对值:{}".format(abs(32)*-1))  结果: 方法二:numpy库#coding:utf-8importnumpyas......
  • python 单例模式
    python单例模式单例模式是一种设计模式,目的是确保一个类只有一个实例,并提供一个全局访问点来获取该实例。有些类只需要一个全局唯一的实例,例如数据库连接池、线程池、日志记录器等。使用单例模式可以确保这些类只有一个实例存在,从而避免了资源的浪费和不一致的状态。单例模式......
  • 【Python】异常
     异常defexecpt_test(a,b):result=a/breturnresultdefdivide_numbers(a,b):try:execpt_test(a,b)exceptZeroDivisionError:print("除数不能为零!")print(divide_numbers(10,0)) ......