热门标签 | 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)

        


 


推荐阅读
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • Vue CLI 基础入门指南
    本文详细介绍了 Vue CLI 的基础使用方法,包括环境搭建、项目创建、常见配置及路由管理等内容,适合初学者快速掌握 Vue 开发环境。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 本文探讨了如何在 Spring MVC 框架下,通过自定义注解和拦截器机制来实现细粒度的权限管理功能。 ... [详细]
  • Ubuntu系统下的GIF动画录制解决方案
    在撰写文章或教程时,GIF动态图能够有效地传达信息。对于Windows用户而言,ScreenToGif是一款非常实用的工具。而在Ubuntu系统中,用户同样拥有多种选择来创建GIF动画,本文将重点介绍两款录屏工具——Byzanz和Peek。 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
  • 本文介绍了如何使用Node.js通过两种不同的方法连接MongoDB数据库,包括使用MongoClient对象和连接字符串的方法。每种方法都有其特点和适用场景,适合不同需求的开发者。 ... [详细]
  • 使用Matlab创建动态GIF动画
    动态GIF图可以有效增强数据表达的直观性和吸引力。本文将详细介绍如何利用Matlab软件生成动态GIF图,涵盖基本代码实现与高级应用技巧。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • 本文详细介绍了如何在最新版本的Xcode中重命名iOS项目,包括项目名称、应用名称及相关的文件夹和配置文件。通过本文,开发者可以轻松完成项目的重命名工作。 ... [详细]
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社区 版权所有