热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

爬虫学习笔记day02

Day02笔记1、解析模块1、数据的分类1、结构化数据特点:有固定的格式,如:HTML、XML2、非结构化数据示例:图片、音频、视频,这类

Day02笔记
1、解析模块
  1、数据的分类
    1、结构化数据
      特点:有固定的格式,如:HTML、XML
    2、非结构化数据
      示例:图片、音频、视频,这类数据以二进制方式存储
  2、正则表达式 re
    1、使用流程
      1、创建编译对象 :p = re.compile('正则表达式')
      2、对字符串进行匹配 :r = p.match('字符串')
      3、获取匹配结果     :r.group()
    2、常用方法
      1、match(html) : 字符串开头的第1个,返回对象
      2、search(html): 从开始往后找,匹配第1个,返回对象
      3、findall(html) : 所有全部匹配,返回列表
    3、表达式
      .  : 匹配任意字符(不包括\n)
      \d : 数字
      \s : 空白字符
      \S : 非空白字符
      \w : 字母、数字、_
      [...] : 包含[]内容 :A[BCD]E --> ABE ACE ADE 

      *  : 0次或多次
      ?  : 0次或1次
      +  : 1次或多次
      {m}: m次
      {m,n} : m-n次,  AB{1,3}C ->ABC ABBC ABBBC
    4、贪婪匹配和非贪婪匹配
      贪婪匹配(.*) : 在整个表达式匹配成功的前提下,尽可能多的匹配*
      非贪婪匹配(.*?) :在整个表达式匹配成功的前提下,尽可能少的匹配*
      见 :01_贪婪匹配和非贪婪匹配示例.py
    5、findall()的分组
      见 :02_findall分组示例.py
    6、练习 见:03_findall分组练习.py
    


        


        
        

        


        Two tigers two tigers run fast
        


    

          
    

        


        
        

        


        Small while rabbit white and white
        


    

    第1步:      
    [("tiger","Two tigers .."),("rabbit","Small rabbit...")]
    第2步:
    动物名称:tiger
    动物描述:Two tigers ...
  3、内涵段子脑筋急转弯抓取 
    见:04_内涵8脑筋急转弯.py
    网址 :http://www.neihan8.com
    1、步骤
      1、找URL规律
        第1页:https://www.neihan8.com/njjzw/
    第2页:https://www.neihan8.com/njjzw/index_2.html
      2、用正则匹配出题目和答案
      3、写代码
        1、发请求
    2、用正则解析
      
.*?class="desc">(.*?)

    3、保存
  4、猫眼电影top100榜单,存到csv文件里
    见 :06_猫眼电影top100.py
    网址 :猫眼电影 - 榜单 - top100榜
    目标 :抓取电影名、主演、上映时间
    1、知识点
      1、csv模块的使用流程
        1、打开csv文件
      with open("测试.csv","a",newline="") as f:
    2、初始化写入对象
      writer = csv.writer(f)
    3、写入数据(列表)
      writer.writerow([列表])
    2、准备工作
      1、找URL规律
        第1页:http://maoyan.com/board/4?offset=0
    第2页:http://maoyan.com/board/4?offset=10
    第n页:offset=(n-1)*10
      2、写正则表达式
       
.*?title="(.*?)".*?class="star">(.*?)

.*?class="releasetime">(.*?)


      3、写代码
2、数据持久化存储
  1、存入mongodb数据库(pymongo模块回顾)
    # 创建连接对象
    conn = pymongo.MongoClient("localhost",27017)
    # 创建数据库对象
    db = conn.库名
    # 创建集合对象
    myset = db.集合名
    # 插入数据
    myset.insert(字典)

    >>>show dbs
    >>>use 库名
    >>>show collections
    >>>db.集合名.find().pretty()
    >>>db.dropDatabase()
    >>>db.集合名.count()
  2、存入MySQL数据库(pymysql模块回顾)
3、requests模块
  1、安装
    Anaconda Prompt : conda install requests
    Windows cmd     : python -m pip install requests
      ## python -m 是以管理员身份执行pip安装命令
    Ubuntu          : sudo pip3 install requests
  2、常用方法
    1、requests.get(url,headers=headers)
      发起请求,并获取响应对象
    2、响应对象res的属性
      1、res.text    : 字符串
      2、res.content : 字节流
      3、res.encoding: 指定字符编码 (ISO-8859-1)
             ## res.encoding = "utf-8"
      4、res.status_code : 响应码
      5、res.url         : 实际数据的URL
    3、get()使用场景
      1、没有查询参数
        res = requests.get(url,headers=headers)
      2、有查询参数(params)
        res = requests.get(url,params=params,headers=headers)

        


 


推荐阅读
  • Python网络爬虫入门:利用urllib库进行数据抓取
    Python网络爬虫入门:利用urllib库进行数据抓取在数据科学和Web开发领域,Python凭借其简洁高效的特性成为首选语言。本文主要介绍了如何在Windows环境下使用Python的urllib库进行基本的网络数据抓取。考虑到命令行操作的不便,作者选择了Jupyter Notebook作为开发环境,不仅简化了配置过程,还提供了直观的数据处理和可视化功能。通过实例演示,读者可以轻松掌握urllib的基本用法,为深入学习网络爬虫技术打下坚实基础。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • SQLmap自动化注入工具命令详解(第28-29天 实战演练)
    SQL注入工具如SQLMap等在网络安全测试中广泛应用。SQLMap是一款开源的自动化SQL注入工具,支持12种不同的数据库,具体支持的数据库类型可在其插件目录中查看。作为当前最强大的注入工具之一,SQLMap在实际应用中具有极高的效率和准确性。 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法
    结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • ylbtech-进销存管理解决方案:进销存管理,即购销链管理,涵盖企业从采购(进)、库存(存)到销售(销)的全流程动态管控。其中,“进”涉及从市场询价、供应商选择、采购执行直至货物入库及支付流程;“销”则包括产品定价、客户报价、订单处理及销售出库等环节。该解决方案旨在通过信息化手段,提升企业运营效率,优化库存结构,增强市场响应速度。 ... [详细]
  • Python学习:环境配置与安装指南
    Python作为一种跨平台的编程语言,适用于Windows、Linux和macOS等多种操作系统。为了确保本地已成功安装Python,用户可以通过终端或命令行界面输入`python`或`python3`命令进行验证。此外,建议使用虚拟环境管理工具如`venv`或`conda`,以便更好地隔离不同项目依赖,提高开发效率。 ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 掌握DSP必备的56个核心问题,我已经将其收藏以备不时之需! ... [详细]
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • MySQL日志分析在应急响应中的应用与优化策略
    在应急响应中,MySQL日志分析对于检测和应对数据库攻击具有重要意义。常见的攻击手段包括弱口令、SQL注入、权限提升和备份数据窃取。通过对MySQL日志的深入分析,不仅可以及时发现潜在的攻击行为,还能详细还原攻击过程并追踪攻击源头。此外,优化日志记录和分析策略,能够提高安全响应效率,增强系统的整体安全性。 ... [详细]
  • 在Python编程中,若需生成SQL语句中的`CURRENTTIMESTAMP`命令而不希望其带有默认的字符串引号,可以通过直接使用变量或字符串拼接的方法来实现。此方法能有效避免因字符串自带引号而导致的SQL语法错误,确保命令正确执行。 ... [详细]
  • 我正致力于利用Azure Functions和System.IO.Compression库,将大量文件高效地压缩并存储到Azure Blob容器中。这种方法不仅提高了存储效率,还优化了数据管理流程。通过这种方式,可以显著减少存储成本,并提升数据访问速度。 ... [详细]
author-avatar
捕鱼达人2602914975
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有