Python爬取mn52网站美女图片以及图片防盗链的解决方法

Python爬取mn52网站美女图片以及图片防盗链的解决方法,第1张

概述防盗链原理 http标准协议中有专门的字段记录referer 一来可以追溯上一个入站地址是什么 二来对于资源文件,可以跟踪到包含显示他的网页地址是什么 因此所有防盗链方法都是基于这个Referer字段   so:很多网站使用防盗链的方法来设置反爬虫机制,设置这种机制后通过图片路由直接访问会返回403错误, 其实解决办法很简单,加入header,然后把Referer写入即可! headers = { 防盗链原理 http标准协议中有专门的字段记录referer 一来可以追溯上一个入站地址是什么 二来对于资源文件,可以跟踪到包含显示他的网页地址是什么 因此所有防盗链方法都是基于这个Referer字段   so:很多网站使用防盗链的方法来设置反爬虫机制,设置这种机制后通过图片路由直接访问会返回403错误,

其实解决办法很简单,加入header,然后把Referer写入即可!

headers = {        User-Agent: Mozilla/5.0 (windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/65.0.3325.181 Safari/537.36,Referer: url    }

本文爬取https://www.mn52.com/网站上面的清纯美女图片,代码如下;

# 需要的库import requestsimport reimport osfrom multiprocessing import Pool# 主函数def get_img(url):    # 设置图片存储路径    path = ./mn52/    if not os.path.exists(path):        os.mkdir(path)    # 请求头,因为图片路由有防盗链设置所以在headers中添加‘Referer‘: url    headers = {        User-Agent: Mozilla/5.0 (windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,Referer: url    }    try:        # 请求主页面路由        response = requests.get(url=url,headers=headers)        # print(response.text)        # 正则提取并遍历获取分页面        res_paging = re.findall(<div >.*?<a href="(.*?)",response.text,re.S)        for i in res_paging:            # 拼接分页面路由            url_infos = https://www.mn52.com + i            # 请求分页面路由            res_details = requests.get(url=url_infos,headers=headers)            # 遍历获取图片路由            res_detail = re.findall(<div >.*?<img .*?rel="(.*?)"/>,res_details.text,re.S)            for i in res_detail:                # 拼接图片路由                img_urls = https:+i                # 给图片命名                filename = i.split(/)[-1]                # 判断图片是否已下载                if os.path.exists(path+str(filename)):                    print(图片已存在)                else:                    # 请求图片连接                    res = requests.get(url=img_urls,headers=headers)                    # 保存图片                    with open(path+str(filename),wb) as f:                        f.write(res.content)                        # 打印下载信息                        print(正在下载:+img_urls)    except Exception as e:        print(e)# 程序入口if __name__ == __main__:    # 构造完整路由    urls = [https://www.mn52.com/meihuoxIEzhen/List_2_{}.HTML.format(i) for i in range(1,94)]    # 开启多进程    pool = Pool()    # 启动程序    pool.map(get_img,urls)    print(抓取完成)

图片比较多,需要一些时间下载,控制台显示的下载过程

打开文件查看图片是否下载成功

 

done

总结

以上是内存溢出为你收集整理的Python爬取mn52网站美女图片以及图片防盗链的解决方法全部内容,希望文章能够帮你解决Python爬取mn52网站美女图片以及图片防盗链的解决方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1195370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存