• Python学习第七天之爬虫的学习与使用(爬取文字、图片、 视频)


    一、爬虫记得基本方法

    1.1 爬虫概述

    ​ 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫

    ​ Python的爬虫相对其他语言来说还是很简单的,是通过requests 这个模块来进行操作的

    因此在使用python进行信息爬取之前,要确保你已经下载了requests 这个模块,如果没有下载通过:pip install requests这个命令下载一下就可以使用了.

    1.2 爬虫的使用方法

    爬虫是通过程序来对我们想要获取信息进行爬取,一般是采用requests 请求获取到网页的信息,然后再对网页的信息进行处理,拿到有效的数据.

    • 通过requests的get方法获取到网页的信息
    • 然后再提取出网页源代码
    • 通过正则表达式从源代码中获取需要的信息
    • 对信息再处理
    • 保存数据

    二、爬虫的操作实例

    2.1 爬取文字

    程序代码:
    # # 实例 爬取段子标题和内容
    import requests
    import re
    
    # 要爬取网页的链接
    url = 'https://ishuo.cn/'
    reponse = requests.get(url)
    data = reponse.content.decode('utf-8')
    # print(data)
    res_title = re.findall('</span><a href="/subject/.*?">(.*?)</a>',data)
    res_content = re.findall('<div class="content">(.*?)</div>',data)
    # 创建一个字典用于存储数据
    data_dict = {}
    for i in range(len(res_title)):
        data_dict[res_title[i]] = res_content[i]
    for i in data_dict.items():
        print(f'title:{i[0]:<50} {i[1]:<200}')
    
    运行结果:

    title:因为她是你的母亲 如果你得罪了老板,失去的只是一份工作;如果你得罪了客户,失去的不过是一份订单;是的,世上只有一个人可以得罪:你给她脸色看,你冲她发牢骚,你大声顶撞她,甚至当 着她的面摔碗,她都不会记恨你,原因很简单,因为她是你的母亲。
    title:这个笑话好内涵,你懂了没? 有位非常漂亮的女同事,有天起晚了没有时间化妆便急忙冲到公司。结果那天她被记旷工了……吃惊]
    title:悟空和唐僧一起上某卫视非诚勿扰 悟空和唐僧一起上某卫视非诚勿扰,悟空上台,24盏灯全灭。理由:1.没房没车只有一根破棍. 2.保镖职业危险.3.动不动打妖精,对女生不温柔. 4.坐过牢,曾被压五指山下500年。唐僧上台,哗!灯全亮。 理由:1.公务员; 2.皇上兄弟,后台最硬 3.精通梵文等外语 4.长得帅 5.最关键一点:有宝马!
    title:为了某个在乎你的人,请节约你的真心 Save your heart for someone who cares. 为了某个在乎你的人,请节约你的真心!

    2.2 对图片的爬取

    程序代码:
    # # #对图片的爬取
    # # 首先第一步要做的就是导入需要用到的模块库
    import re
    import requests
    # 获取要爬取信息页面的内容
    for i in range(10):
        url = f'http://www.nipic.com/design/acg/renwu/index.html?page={i+1}'
        reponse = requests.get(url)
        # 使用data变量将页面信息传递过来
        data = reponse.text
        # 编写正则表达式获取有效的内容(每张图片的url地址)
        results = re.findall('data-src="(.*?)"',data)
        # 循环拿出每个图片的url
        count = 0
        print(f"正在爬出第{i+1}页的信息...")
        for result in results :
            # 请求页面获取图片信息存入变量中
            images_data = requests.get(result)
            # 取出文件名
            images_name = result.split('/')[-1]
            # 格式化 图片信息成二进制形式
            images_content = images_data.content
            # 将二进制文件生成图片并保存
            with open('images\'+images_name, 'wb') as f:
               f.write(images_content)
               f.flush()
            count += 1
            print(f'保存第{count}张图片成功')
    
    运行结果:

    正在爬出第1页的信息...
    保存第1张图片成功
    保存第2张图片成功
    保存第3张图片成功
    保存第4张图片成功
    保存第5张图片成功
    保存第6张图片成功
    保存第7张图片成功
    保存第8张图片成功
    保存第9张图片成功
    保存第10张图片成功
    保存第11张图片成功
    保存第12张图片成功
    保存第13张图片成功

    .....

    2.3 对视频的爬取

    程序代码:
    # # # 对视频的爬取
    import re
    import requests
    
    # 要爬取网站的url
    url = 'http://www.mod.gov.cn/v/'
    response = requests.get(url)
    response.encoding = 'utf8'
    data = response.text
    page_url = re.findall('<a href="(.*?.htm)"',data)
    for i in page_url:
        page_url = 'http://www.mod.gov.cn/v/'+i
        page_res = requests.get(page_url)
        page_data = page_res.text
        video_url = re.findall('//Video (.*?.mp4)',page_data)[0]
        video_name = video_url.split('/')[-1]
        video_data = requests.get(video_url).content
        with open('videos\'+video_name,'wb') as f:
            f.write(video_data)
            f.flush()
            break
    
    运行结果:

    会在程序文件夹下的videos文件夹中保存视频的文件

    总结

    ​ 今日份学习的是Python的爬虫相关的知识。通过实际操作掌握了,python的强大, 对网页信息的获取以及内容处理这一块的功能表示叹服,学到了很多新的知识,也通过实际动手操作成功的对文字、图片、视频等网站进行了爬取,开心ing

  • 相关阅读:
    bzoj 2818 Gcd(欧拉函数 | 莫比乌斯反演)
    bzoj 2186 [Sdoi2008]沙拉公主的困惑(欧拉函数,逆元)
    bzoj 2393 Cirno的完美算数教室(容斥原理+搜索)
    c3p0 连接池配置
    Hibernate连接池断开自动重连
    Oracle ASM注意事项
    JAVA如何获得数据库的字段及字段类型
    在引入的css或者js文件后面加参数的作用
    JAVA注解
    Linux软连接和硬链接
  • 原文地址:https://www.cnblogs.com/foreversun92/p/11228079.html
Copyright © 2020-2023  润新知