爬虫简单爬取图片实例教学

想要使用爬虫爬取网站上的资源首先需要导入三个库

分别是:  requests   re    os

导入库之后就可以开始进行学习了

基本代码有关部分

第一步.获取网络源代码

def get_html(url,headers,params):
    response = requests.get(url,headers=headers,params=params)
    # 设置源代码的编码方式
    response.encoding="utf-8"
    if response.status_code == 200:
        return response.text
    else:
        print("网站源码获取错误")

第二部.提取图片源代码 

def parse_pic_url(html):
    result = re.findall('thumbURL":"(.*?)"',html,re.S)
    return result

第三步.获取图片二进制源码

def get_pic_nic_content(url):
    response = requests.get(url)
    return response. Content

第四步.保存图片

def save_pic(fold_name,content,pic_name):
    with open(fold_name+"/"+str(pic_name)+".jpg","wb")as f:
        f.write(content)
        f.close()

第五步.定义一个新的文件夹程序

def create_fold(fold_name):
    # 加异常处理
    try:
        os.mkdir(fold_name)
    except:
        print("文件夹已存在")

 

 网页有关部分

第一步.获取url

        这里我选择爬取百度图片中的大熊图片,打开百度图片,搜索大熊猫

         打开网页后右击鼠标,选择检查

 点击网络后选择Fecth/XHR

之后刷新网页将鼠标在图片上移动就会出现以下情况

之后选择头标为   acjson  按图片中指示进行操作 

之后复制图片圈住内容就可以了 

第二部.获取 headers

可以接着上一步进行,

按图片操作,复制即可获得headers

第三步.获取 params

还是可以接着操作,点击负载,复制所有内容即可

main主函数部分 

在写好了基本代码,获取了url,headers,params之后我们就可以开始编写主函数了

def main():

    # 输入文件夹名字
    flode_name = input("请输入您想要爬取的图片的名字:")
    # 输入要抓取的图片页数
    page_num = input("请输入要抓取的页数(0,1,2,3,4,5,6,.....)")
    # 调用函数创建文件夹
    create_flode(flode_name)
    # 构建循环

    pic_name = 0
    for i in range(int(page_num)):
        url=""
        headers = {
           
        }
        params = {
            
        }
        html = get_html(url, headers, params)
        # print(html)
        result = parse(html)

        for item in result:
            #       调用函数获取图片二进制源码
            pic_contont = get_pic_content(item)
            # 调用函数保存图片
            save_pic(flode_name,pic_contont, pic_name)
            pic_name += 1
            print("已保存第" + pic_name.__str__() + "张图片")

将获取到网页信息分别复制到代码中,其中headers,params需要转换为字典形式

如图所示

(params中无内容部分可删除) 

再按照图片中的操作更改params的内容

 

这样就可以爬取图片了,谢谢观看。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值