python 简单实用的小爬虫(爬动漫图片)

简简单单爬一个网站, 动漫图片网址里面有很多好看的动漫图片,所以想都下载下来,这个代码是前两页的内容,可以通过修改循环中的range(1,3)来自行选择要下载多少页,还有就是路径在D盘自己创建的爬虫图片里面,第一个代码 是封装的函数,包括请求头,请求格式和请求失败后允许重新请求几次。第二个代码是主体实现代码,主体实现包括一个问题,目前还没想到简单一点的解决方案,因为图片名字也是爬虫爬来的,所以可能原图片姓名会出现特殊字符而无法命名的现象,不过这是极少数情况,希望会的大佬指点一下,或者帮忙完善一下,感激不尽!!!以下是代码和结果截图

#封装函数的代码
#coding = utf-8
import requests
from retrying import retry
headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"}
@retry(stop_max_attempt_number=3)
def _parse_url(url,method,data,proxies):
    print("*"*20)
    if method =="POST":
        requests.post(url,data=data,headers=headers,proxies=proxies)

    else:
        response=requests.get(url,headers=headers,timeout=3,proxies=proxies)
    assert response.status_code==200  #状态码
    return response.content.decode()

def parse_url(url,method="GET",data=None,proxies={ }):
    try:
        html_str = _parse_url(url,method,data,proxies)
    except:
        html_str=None

    return html_str

if __name__ == '__main__':
    url="https://www.huashi6.com/"
    print(parse_url(url))

主要代码实现

#coding=utf-8
import  re
import requests
import  datetime #日期
import os
from parse_url import parse_url

for n in range(1,3):

    url="https://www.huashi6.com/hot_"+ str(n)
    #测试代码
    # n+=1
    # print(url)


    html_str=parse_url(url)



    regex=r'img src="(http:.*?.g)"'#正则表达式图片
    pa=re.compile(regex)#模型
    ma=re.findall(pa,html_str)#匹配到的数据
    a=ma[0:len(ma):2]#切片吧头像去除
    #以下是输出图片类型内容和长度
    # print(type(a))
    # print(a)
    # print(len(a))

    #名字同上
    regex1=r' title="(.*?)" class'#正则表达式名字
    pa1=re.compile(regex1)
    name=re.findall(pa1,html_str)
    # print(name)
    # print(type(name))
    # print(len(name))



    i=0
    for image in a:

        image=requests.get(image).content
        path = "D:\\pachongtupian\\"#存放路径
        # 判断是否存在,不存在就创建
        if not os.path.exists(path):
            os.makedirs(path)

        cur = datetime.datetime.now()  # 获取当前系统时间,因为网站中的图片会存在重名的情况

        m=cur.microsecond#唯一标识
        with open(path+str(name[i])+str(cur.month)+str(cur.day)+str(cur.minute)+str(m)+'.jpg','wb') as f:
            f.write(image)
            i += 1
        print(str(i) + '正在保存')

    print("第%d页保存完毕"%n)
    n+=1

print("全部图片保存完毕")







这是爬下来的图片,执行间隔短的话会出现一样图片不一样名字的现象
在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值