网络爬虫实例——简易爬取百度图片

本文介绍了如何使用Python爬取网络资源,通过requests库进行HTTP请求,re库处理HTML以获取资源地址,os库管理文件。详细步骤包括获取网页源代码、解析资源、下载图片并保存到指定文件夹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想要爬取网络资源,我们首先需要导入三个重要的库requests,re,os

requests: 这个库用于进行HTTP请求。你可以使用它来向Web服务器发送GET或POST请求,以获取或发送数据。通常用于与Web API交互或抓取网页内容。

re(正则表达式): re库用于处理文本数据,特别是字符串匹配和搜索。你可以使用正则表达式来查找、替换、分割字符串等操作。它非常有用,当你需要从文本中提取特定模式的信息时。

os(操作系统): 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(html):
    result = re.findall('thumbURL":"(.*?)"', html, re.S)
    return result

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

def get_pic_content(url):
     response = requests.get(url)
     # response.encoding = "utf-8"
     return response.content

第四步,创建文件夹

# 新建文件夹 函数
def create_flode(flode_name):
    # 异常处理
    try:
        os.mkdir(flode_name)
    except:
        print("文件已存在")

第五步,保存图片

# 保存图片
def save_pic(folde_name,content,pic_name):
    with open(folde_name+"/"+str(pic_name)+".jpg","wb") as f:
        f.write(content)
        f.close()

第六步,定义main函数,获取url,headers,params

一、获取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__() + "张图片")

其中,url,headers,parems内填入我们刚才复制的内容,并且后面两个参数需要转换成字典形式

最后,运行main函数

#     执行main
if __name__ == '__main__':
    main()

以上就是一个网络爬虫的实例,希望能对您有所帮助



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值