版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程学习方法全套PPT课件1课程主要模块课程简介目录职业发展趋势2课程学习方法3国内大数据行业发展的如火如荼,作为互联网时代新型的产业,大数据行业其实是互联网和计算机结合的产物,互联网实现了数据的网络化,计算机实现了数据的数字化,两者结合赋予了大数据生命力。大数据时代的到来,简单的说是海量数据完美计算能力结合的结果。确切的说是移动互联网、物联网产生了海量的数据,大数据计算技术完美的解决了海量数据的收集、存储、计算、分析的问题。大数据时代开启人类社会利用数据价值的另一个时代。因大数据计算技术可以完美地解决海量数据的收集、存储、计算、分析的问题,所以移动通信、导航、电商、社交等互联网现状无一不在推动着大数据行业的快速发展。简单来说,大数据的发展是因为可以迎合互联网时代的刚需。
职业发展趋势
大数据相关岗位
职业发展趋势
数据分析处理类爬虫、数据库SQL数据分析处理工具、算法爬虫工程师、数据专员、数据分析师大数据系统开发类大数据产品生态圈(平台)虚拟化技术、Docker系统开发、系统运维、系统架构职业发展趋势语言受欢迎程度IEEESpectrum2020编程语言Top10职业发展趋势
职业发展趋势
一个爬虫工程师的成长之路/p/112038604职业发展趋势2职业发展趋势课程简介目录课程主要模块1课程考核及学习方法3课程主要模块知识模块学时第一模块数据采集基础4第二模块静态网页数据采集18(实验8)第三模块动态网页数据采集8(实验2)第四模块Scrapy框架10(实验4)第五模块数据清洗pandas6(实验2)总学时:48,理论32,实验16课程主要模块(1)理解数据采集与清洗在大数据生命周期的应用(2)理解大数据环境下的数据采集方法(3)理解爬虫的基本原理(4)掌握Requests库的get和post方法(5)掌握selenium库的元素查找、元素操纵、窗口切换方法(6)掌握Xpath、BeautifulSoup、CSS选择器、正则表达式等解析方法(7)掌握Scrapy框架的基本原理、运用BasicSpider和CrawlSpider编写爬虫(8)掌握数据的文件,关系型数据库的存储方法(9)掌握Pandas对采集数据进行数据清洗的方法课程主要模块工具与设备:1、笔记本或台式电脑2、python开发工具、Pycharm等主流IDE3、MySQL数据库4、互联网环境周二上理论课,不需要电脑;周五需要带上自己的笔记本电脑进行实验3职业发展趋势课程简介目录课程考核及学习方法1课程主要模块2课程考核平时成绩:占50%(课堂表现10,实验报告20,章节测试20)考试成绩:占50%(闭卷理论考试)课堂表现正确回答问题+(2~5)分,错误不扣分;上课不准玩手机、睡觉、说话;不能迟到、早退;旷课(3次取消考试资格)学习方法课堂上准备一个练习本,针对重点知识和案例进行课堂练习认真对待作业,代码可以在本机环境中运行,提交到超星平台学会独立思考,尝试用不同的思路或方法完成案例推荐学习网站和教学资源网络爬虫与信息提取(嵩天)/course/BIT-1001870001PythonPython数据分析与展示(嵩天)/course/BIT-1001870002Python网络爬虫程序技术(黄锐军
、蔡铁
、薛国伟
、吴瑜)/course/ZIIT-1002925008概述1数据采集的相关概念教学内容-数据采集基础数据来源和格式2数据清洗的相关概念3数据采集与清洗的流程和场景4概述1数据采集的相关概念教学内容-数据采集基础数据来源和格式2数据清洗的相关概念3数据采集与清洗的流程和场景41、理解数据什么是数据?只要承载了一定的信息,这些数字、图片、文本、声音等都可以认为是数据。没有承载信息的数字是不能作为数据的,认识清楚这个问题,是踏入大数据之门的第一步。数据从哪里来?从微观层面看,我们每个人都在生产着数据:早上8点,你使用支付宝购买了早餐;上午10点,你给100086打一次电话咨询话费余额;下午六点,你乘坐的公共交返回家中。然后,支付宝获取了你的使用习惯和消费能力,时时向你推荐花呗等应用;10086获取了你的咨询需求,推出了自助话费查询功能;公共交通将你的信息提供给了保险公司,就有了后来的“先生/女士,现向你推荐一款公共交通安全险”
数据来源和格式
数据从哪里来?从宏观层面看,各种行业以几何倍数爆发增长的速度在制造着数据,比如互联网(社交,搜索,电商)、移动互联网(微博)、物联网(传感器)、医学影像、安全监控、金融(银行,股市,保险)电信(通话,短信)都在疯狂的产生着数据,已经不能用G或T来衡量,数据量已经从TB(1024GB=1TB)级别跃升到PB(1024TB=1PB)、EB(1024PB=1EB)乃至ZB(1024EB=1ZB)级别。
数据来源和格式
数据来源和格式2、数据来源数据来源,指的是所得到的数据的来源。数据来源一般有线下调研和线上搜集两大类。数据来源和格式2、数据来源网络日志传感器网络、社会网络、社会数据互联网文本和文件、互联网搜索索引天文学、大气科学、生物学军事侦查医疗记录视频(监控、互联网等)、图片、音频大规模电子商务数据来源和格式3、数据格式
数据格式(dataformat)是数据保存在文件或记录中的编排格式,可为数值、字符或二进制数等形式,由数据类型及数据长度来描述。主要的数据格式如下:网页格式:例.html文件音频XML格式JSON格式其他数据格式数据来源和格式网页格式
网页的结构,是以HTML文档、JavaScript脚本和CSS样式单的方式组织。在网页上查看源码可以了解其内部结构。网页格式——HTML超文本标记语言(HTML)是最常见的网页数据,其特点:HTML是一种描述性标记语言,用来描述页面内容的显示方式;HTML文件是一种纯文本文件,以“.html”或“.htm”为后缀。HTML的基本组成单位是元素(<标签>),语法结构如下:常见的标签如下表:
数据来源和格式XMLXML(eXtensibleMarkupLanguage,可扩展标记语言),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。XML常被设计用来传输和存储数据。其特点:它是对超文本标记语言的补充,被设计用来传输和存储数据,其焦点是数据的内容;自定义标记。XML的基本结构也是由标签组成,它则要求所有的标签必须成对出现,并且大小敏感,其语法结构如下:<?xmlversion="1.0"encoding="utf-8"?><标签>
内容</标签>数据来源和格式JSONJSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。JSON格式数据易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。其特点如下:JSON采用完全独立于语言的文本格式;方便人的阅读和编写,同时也易于机器解析和生成。JSON的语法规则,表示为键值对的结构,键值对之间用冒号分隔:多个键值对在一起时,数据用逗号分隔。示例:多个健值对数据{“book_title":"HarryPotter“,"author":"JK.Rowling"}数据来源和格式作为存储和交换文本信息的语言,与XML的不同的是:数据格式简单,易于读写,占用带宽小;能够使用JavaScript内建的eval()方法进行解析;不使用保留字,无结束标签。JSON表示数据有两种结构:对象。用“{}”括起来的内容;数组。表示为“[]”括起来的内容;{"book":[ {"title":"HarryPotter","author":"JK.Rowling","year":"2005"},{"title":"LearningXML","author":"ErikT.Ray","year":"2003"}]}数据来源和格式其他格式除了网页、网页格式、JSON格式、XML格式外,网络数据:PDFOffice系列文档CSVRTF数据来源和格式4、大数据的生命周期采集:数据收集是做大数据的第一步,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,比如摄像头,麦克风,都是数据采集工具。数据采集系统整合了信号、传感器、激励器、信号调理、数据采集设备和应用软件。大数据生命周期:数据采集–>数据存储–>数据处理–>数据展现(可视化,报表和监控)教学内容2数据来源和格式数据采集的相关概念1数据清洗的相关概念3数据采集与清洗的流程和场景4数据采集的相关概念大数据时代,数据正在迅速膨胀并变大,数据决定着企业的未来发展,随着时间的推移,人们逐渐意识到数据对企业的重要性。大数据时代对人类的数据驾驭能力提出了新的挑战,也为人们获得更为深刻、全面的洞察能力提供了前所未有的空间与潜力。数据采集的相关概念1、数据采集的发展历程20世纪50年代数据采集系统起源20世纪60年代专业系统20世纪70年代采集器诞生20世纪80年代采集系统处理能力大大加强20世纪90年代至今应用在各行各业数据采集的相关概念数据采集现状现状先进的高端数据采集,还能测量一些抽象的事物,比如光、温度、压力和声音等,系统还能进行自动化数据分析。在未来的发展趋势中,全球数据采集技术,正在向着微型化、网络化和智能化的方向发展。数据采集系统微型化数据采集系统网络化数据采集系统智能化数据采集的相关概念2、数据采集方法
大数据环境下数据来源非常丰富且数据类型多样,存储和分析挖掘的数据量庞大,对数据展现的要求较高,并且很看重数据处理的高效性和可用性。从采集方法上,大致分为离线采集实时采集互联网采集其他采集数据采集的相关概念2、数据采集方法离线采集工具:ETL在数据仓库的语境下,ETL基本上就是数据采集的代表,包括数据的抽取(Extract)、转换(Transform)和加载(Load)。在转换的过程中,需要针对具体的业务场景对数据进行治理,例如进行非法数据监测与过滤、格式转换与数据规范化、数据替换、保证数据完整性等。数据采集的相关概念数据仓库是决策支持系统和联机分析应用数据源的结构化数据环境,是一个面向主题的(SubjectOriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(TimeVariant)的数据集合,用于支持经营管理中的决策制定过程。数据库和数据仓库区别?数据库是面向事务的设计,而数据仓库是面向主题设计的。数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。数据库是为捕获数据而设计,数据仓库是为分析数据而设计。数据库一般存储在线交易数据,数据仓库一般存储的是历史数据。数据采集的相关概念2、数据采集方法实时采集工具:Flume、Kafka、SparkStreaming实时采集主要用在考虑流处理的业务场景,比如,用于记录数据源的执行的各种操作活动,比如网络监控的流量管理、金融应用的股票记账和web服务器记录的用户访问行为。在流处理场景,数据采集会成为Kafka的消费者,就像一个水坝一般将上游源源不断的数据拦截住,然后根据业务场景做对应的处理(例如去重、去噪、中间计算等),之后再写入到对应的数据存储中。这个过程类似传统的ETL,但它是流式的处理方式,而非定时的批处理Job,些工具均采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求数据采集的相关概念2、数据采集方法互联网采集工具:Scrapy、pyspider等又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它支持图片、音频、视频等文件或附件的采集。其他数据采集方法对于企业生产经营数据上的客户数据,财务数据等保密性要求较高的数据,可以通过与数据技术服务商合作,使用特定系统接口等相关方式采集数据。教学内容3数据来源和格式数据清洗的相关概念1数据采集的相关概念2数据采集与清洗的流程和场景4数据清洗的相关概念1、脏数据
脏数据即数据不完整有缺失、存在错误和重复的数据,数据存在不一致和冲突等缺陷.数据清洗的相关概念2、数据清洗定义广义上,数据清洗是将原始数据进行精简以去除冗余和消除不一致,并使剩余的数据转换成可接收的标准格式的过程;狭义上的数据清洗特指在构建数据仓库和实现数据挖掘前对数据源进行处理,使数据实现准确性、完整性、一致性、唯一性和有效性以适应后续操作的过程。一般而言,凡是有助于提高信息系统数据质量的处理过程,都可认为是数据清洗数据清洗的相关概念3、数据清洗研究现状国外研究现状国外对数据清洗的研究最早出现在美国,是从对全美的社会保险号错误的纠正开始。美国信息业和商业的发展,极大地刺激了对数据清洗技术的研究,主要集中在以下4个方面:检测并消除数据异常检测并消除近似重复记录数据的集成定领域的数据清洗数据清洗的相关概念3、数据清洗研究现状国内研究现状国内对数据清洗技术的研究还处于初级阶段。直接针对数据清洗,特别是针对中文数据清洗的研究成果并不多。大多是在数据仓库、决策支持、数据挖掘研究中,对其做一些比较简单的阐述。银行、保险和证券等对客户数据的准确性要求很高的行业,都在做各自的客户数据的清洗工作。数据清洗的相关概念数据清洗就是对原始数据进行重新审查和校验的过程,目的在于删除重复信息、纠正存在的错误,并使得数据保持精确性、完整性、一致性、有效性及唯一性,还可能涉及数据的分解和重组,最终将原始数据转换为满足数据质量或应用要求的数据4、数据清洗目的教学内容4数据来源和格式数据采集与清洗的流程和场景1数据采集的相关概念2数据清洗的相关概念3数据采集与清洗的流程和场景1、
数据采集流程
数据采集是为了满足某种目的进行的采集,数据采集流程具体表现在以下几个方面:目标的确定采集内容的确定采集范围的确定采集量的确定其他因素数据环境和数据的可获取性等。采集结束效果满意反馈意见采集活动开始选择数据源采集策略确定采集实施采集效果评价和解释需求分析具体的采集流程如下:现在各行各业都在收集自己的相关数据,数据采集应用领域非常广泛:工业领域工业生产中,涉及到多种环境因素,且这些因素会影响到产品的生产过程和参与生产过程的安全:设备的电能消耗数据采集生产场所的温湿度、气压的数据采集农业领域农作物生产分不同的阶段,不同阶段需采集不同的数据:种植准备的阶段:采集土壤数据种植和培育阶段:采集温度、湿度、CO2等数据农作生长阶段:采集环境信息、养分信息和病虫情况等数据采集与清洗的流程和场景2、
数据采集场景
金融领域大数据在金融领域的应用,一般认为有精准营销和大数据风控两个方面:基于行为数据去预测用户的偏好和兴趣大数据风控的两个应用,信用风险和欺诈风险电商领域网络电商平台电商APP用户信息数据采集与清洗的流程和场景2、
数据采集场景
日志领域:Web日志服务器日志数据库日志在数据分析的时候常常会涉及数据清洗,使用场景非常广泛,例如:工业领域工业产生的数据非常巨大,采集的数据非常多,但是采集的数据不一定直接可用,需要进一步清洗:机器运行数据产品统计量农业领域农产品的产量土壤的数据量数据采集与清洗的流程和场景3、数据清洗场景
健康数据身体指标血液检测指标运动数据天气数据气温湿度空气成分数据采集与清洗的流程和场景3、数据清洗场景
电商数据用户信息数据商品销售数据网站的浏览数据小结:大数据生命周期数据采集方法数据清洗目的HTTP基本原理1、常见的数据来源和格式有哪些?2、数据采集的常见方法有哪些?知识回顾1网络爬虫分类教学内容-数据采集基础网络爬虫的概念2网页相关概念3网络爬虫策略41、网络爬虫的定义网络爬虫(Crawler,又被称为网页蜘蛛--Spider、网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫经典的应用案例,如Google、百度、Bing(必应)。
网络爬虫的概念
网络爬虫的概念及原理
疑问【案例1】电影评价网站记录着观影者对电影的喜好程度和评价信息,通过对相关网站用户评价信息的收集,可以为电影相关的数据的分析和挖掘做支撑,常见的后期应用包括:对电影针对的用户群体做分析;获得大众娱乐/舆情热点;电影推荐(广告推送);……2、网络爬虫的作用网络爬虫有什么用?网络爬虫的概念及原理2、网络爬虫的作用网络爬虫有什么用?疑问【案例2】有一个销售电子设备的店铺,想要及时了解竞争对手的价格。他们可以通过每天访问电商平台或相关产品网站,与店铺中出售的电子设备进行价格对比。但是,由于店铺中的电子产品种类繁多,而且希望能够更加频繁的查看价格变化的动态,采用传统手工查询的方式需要花费大量的时间。网络爬虫的概念及原理2、网络爬虫的作用网络爬虫有什么用?疑问【案例3】福州的一家上市公司开会做出股权转让决定,刚在官网公告频道发布消息,很多内部员工还没及时了解到变更信息,国税局就立刻找到该上市公司。国税稽查人员透露说上市公司股权转让问题越来越成为税收征管的热点和难点,国税“种植”的网络“爬虫”第一时间监测到该上市公司转让股权的消息,于是引起高度重视。网络爬虫的概念3、网络爬虫的流程为了从万维网大量信息载体中有效地提取数据,需要采用必要的手段和规则定向抓取网页资源。网络爬虫的实现原理是通过标准的HTTP协议,利用超链接和Web文档检索方法遍历万维网。网络爬虫是搜索引擎的重要组成部分,它作为一个功能强大的自动提取网页程序,为搜索引擎从万维网上下载网页。注意互联网网络爬虫模块最终用户用户查询模块索引模块网页库索引库2网络爬虫的概念教学内容-数据采集基础网络爬虫的分类1网页相关概念3网络爬虫策略4网络爬虫的分类网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型。通用网络爬虫(GeneralPurposeWebCrawler)聚焦网络爬虫(FocusedWebCrawler)增量式网络爬虫(IncrementalWebCrawler)深层网络爬虫(DeepWebCrawler)实际的网络爬虫系统通常是几种爬虫技术相结合实现的。网络爬虫的分类1、通用网络爬虫(GeneralPurposeWebCrawler)原理:通用网络爬虫又称全网爬虫(ScalableWebCrawler),爬行对象从一些种子URL扩充到整个Web,主要为门户站点搜索引擎和大型Web服务提供商采集数据。结构:分为页面爬行模块、页面分析模块、链接过滤模块、页面数据库、URL队列、初始URL集合几个部分。爬行策略:深度优先策略、广度优先策略。
网络爬虫的分类2、聚焦网络爬虫(FocusedWebCrawler)原理:聚焦网络爬虫(FocusedCrawler),又称主题网络爬虫(TopicalCrawler),是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。结构:分为页面爬行模块、页面分析模块、链接过滤模块、页面数据库、URL队列、初始URL集合、链接评价模块以及内容评价模块几个部分。爬行策略:基于内容评价的爬行策略、基于链接结构评价的爬行策略、基于增强学习的爬行策略、 基于语境图的爬行策略。
网络爬虫的分类3、增量式网络爬虫(IncrementalWebCrawler)原理:增量式网络爬虫(IncrementalWebCrawler)是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。结构:包含爬行模块、排序模块、更新模块、本地页面集、待爬行URL集以及本地页面URL集。爬行策略:统一更新法、个体更新法、基于分类的更新法(保持本地页面集中存储的页面为最新页面);广度优先策略、PageRank优先策略等(提高本地页面集中页面的质量)。
网络爬虫的分类4、深层网络爬虫(DeepWebCrawler)原理:DeepWeb是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的Web页面。结构:包含六个基本功能模块(爬行控制器、解析器、表单分析器、表单处理器、响应分析器、LVS控制器)和两个爬虫内部数据结构(URL列表、LVS表)。爬行策略:DeepWeb爬虫爬行过程中最重要部分就是表单填写,包含两种类型:基于领域知识的表单填写、基于网页结构分析的表单填写。3网络爬虫的概念教学内容-数据采集基础网页相关概念1网络爬虫的分类2网络爬虫策略4网页相关概念1、HTTP基本原理HTTP的基本原理,主要包括以下内容:URI和URL超文本HTTP和HTTPSHTTP请求过程请求响应网页相关概念1、HTTP基本原理URI概述统一资源标识符(UniformResourceIdentifier,URI)是一个用于标识某一互联网资源名称的字符串。该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。统一资源定位符(UniformResourceLocator,URL)、统一资源名称(UniformResourceName,URN)是URI的子集。现在互联网中,URN用的非常少,几乎所有的URI都是URL,一般的网页链接既可以称为URL,也可以称为URI。注意URL概述URL(UniformResourceLocator,统一资源定位符)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。网页相关概念1、HTTP基本原理URL概述URL采用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL的格式由三部分组成:第一部分是协议;第二部分是存有该资源的主机IP地址(有时也包括端口号);第三部分是主机资源的具体地址,如目录和文件名等。https
:///home.php
协议
服务器主机名或IP地址路径和资源文件名网页相关概念1、HTTP基本原理URL概述依据URL定义,给出了常用的两种URL协议的示例:示例:HTTPS协议的URL解释:其计算机域名为
。超文本文件是在目录/home下的index.mooc。示例:文件的URL
解释:上面这个URL代表存放在主机
上的pub/files/目录下的一个文件,文件名是foobar.txt。/home/index.moocfile:///pub/files/foobar.txt网页相关概念1、HTTP基本原理URL概述完整的带有授权的普通URL语法描述如下:URL中的端口号用来区分在同一个主机上的不同服务,其编号范围从0到65535。HTTP默认端口号为80,指定URL时可以省略。如前述【示例】HTTP协议的URL带端口号的表达形式:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志协议或服务默认端口号HTTP80FTP21telnet23SMTP25MySQL3306:80/home/index.mooc网页相关概念1、HTTP基本原理超文本超文本(HyperText,HT)是由信息结点和表示信息结点间相关性的链构成的一个具有一定逻辑结构和语义的网络。超文本是由节点(Node)和链(Link)构成的信息网络。节点是表达信息的单位,通常表示一个单一的概念或围绕一个特殊主题组织起来的数据集合。节点的内容可是文本、图形、图像、动画、音频、视频等,也可以是一般计算机程序。链是固定节点间的信息联系,它以某种形式将一个节点与其他节点连接起来。由于超文本没有规定链的规范与形式,因此,超文本与超媒体系统的链也是各异的,信息间的联系丰富多彩引起链的种类复杂多样。但最终达到效果却是一致的,即建立起节点之间的联系。浏览器中的网页就是通过超文本解析而成的,网页源代码是一系列HTML代码,包括一系列标签:img(显示图片)、p(指定显示段落)等。浏览器通过解析一系列标签,便形成了可观看的网页,网页的源代码HTML就可称作超文本。网页相关概念HTTP和HTTPSHTTP协议(HyperTextTransferProtocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件、图片文件、查询结果等)。HTTPS(HyperTextTransferProtocoloverSecureSocketLayer),是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS在HTTP的基础下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS存在不同于HTTP的默认端口(端口为443)及一个加密/身份验证层(在HTTP与TCP之间)。1、HTTP基本原理网页相关概念HTTP和HTTPSHTTPS的安全基础是SSL,通过它传输的内容都是经过SSL加密,它的主要作用可以分为以下两种:建立一个信息安全通道来保证数据传输的安全;确认网站的真实性,凡是使用了HTTPS的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过CA机构颁发的安全签章来查询。HTTP请求过程可分为以下几个部分:1.建立TCP连接;2.浏览器向服务器发送请求命令;3.服务器应答;4.服务器关闭TCP连接;5.浏览器接受到服务器响应的数据。1、HTTP基本原理网页相关概念1、HTTP基本原理HTTP和HTTPS1.建立TCP连接在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议,因此Internet又被称作是TCP/IP网络。2.Web浏览器向Web服务器发送请求命令建立TCP连接后,Web浏览器会向Web服务器发送请求命令。3.Web服务器应答客户机向服务器发出请求后,服务器会向客户机进行应答,应答内容包括:协议的版本号和应答状态码(HTTP/1.1200OK),响应头信息来记录服务器自己的数据,被请求的文档内容。网页相关概念4.Web服务器关闭TCP链接一旦Web服务器向浏览器发送了请求的数据,它就要关闭TCP连接;但如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive,TCP连接在发送后将仍然保持打开状态,浏览器可以继续通过相同的连接发送请求。5.浏览器接受到服务器响应的数据浏览器接受服务器应答回来的HTML代码、CSS、JS代码,再进行页面的渲染或者接受到应答的文件进行保存等操作。1、HTTP基本原理网页相关概念请求方式在客户机和服务器之间进行请求响应时,两种最常被用到的方式是GET和POST:GET-从指定的资源请求数据。POST-向指定的资源提交要被处理的数据。
GET方式查询字符串(名称/值对)是在GET请求的URL中发送的:
POST
方式查询字符串(名称/值对)是在POST请求的HTTP消息主体中发送的:/test/demo_form.asp?name1=value1&name2=value2POST/test/demo_form.aspHTTP/1.1Host:name1=value1&name2=value21、HTTP基本原理网页相关概念请求方式除了GET和POST方式,还有其他的请求方式:HEAD-类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头;PUT-从客户端向服务器传送的数据取代指定的文档的内;DELETE-请求服务器删除指定的页面;CONNECT-HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器;OPTIONS-允许客户端查看服务器的性能;TRACE-回显服务器收到的请求,主要用于测试或诊断;PATCH-是对PUT方法的补充,用来对已知资源进行局部更新。1、HTTP基本原理网页相关概念1、HTTP基本原理响应响应,由服务端返回给客户端,可分为四部分:响应状态码(ResponseStatusCode)响应头(ResponseHeaders)空行响应体(ResponseBody)1响应状态码2响应头3空行4响应体网页相关概念1、HTTP基本原理响应响应状态码HTTP状态码表示HTTP协议所返回的响应的状态。HTTP状态码通常分为5种类型,分别以1~5五个数字开头,由3位整数组成:
1XX表示消息;2XX表示成功;3XX表示重定向;4XX表示请求错误;5XX表示服务器错误;命令功能处理方式200请求成功获得响应内容,进行处理201请求完成,结果是创建了新资源爬虫中不会遇到202请求被接受,但处理尚未完成阻塞等待204服务器端已经实现了请求,但是没有返回新的信息丢弃300存在多个可用的被请求资源若程序中能够处理,则进行进一步处理,如果程序中不能处理,则丢弃301请求到的资源都会分配一个永久的URL,这样就可以在将来通过该URL来访问此资源重定向到分配的URL302请求到资源在一个不同的URL处临时保存重定向到临时的URL命令功能处理方式304请求的资源未更新丢弃400非法请求丢弃401未授权丢弃403禁止丢弃404没有找到丢弃500服务器出现错误丢弃常见状态码及爬虫处理方式:网页相关概念1、HTTP基本原理响应响应头响应头包含了服务器对请求的应答信息,常见的响应头如下:Allow:服务器支持哪些请求方法(如GET、POST等);Content-Type:表示后面的文档属于什么类型。Servlet默认为text/plain,但通常需要显式地指定为text/html;Date:当前的GMT时间;Location:表示客户应当到哪里去提取文档;Refresh:表示浏览器应该在多少时间之后刷新文档,以秒计;Server:服务器名字,Servlet一般不设置这个值,而是由Web服务器自己设置;Set-Cookie:设置和页面关联的Cookie;
网页相关概念1、HTTP基本原理响应空行作为内容分割,表示以下不再是响应头的内容。响应体响应头是服务器返回给客户端的文本信息,响应的正文数据在响应体中;比如请求网页时,它的响应体就是网页的HTML代码;爬虫请求网页后,要解析的内容就是响应体。响应体网页相关概念2、网页基础浏览器访问网站时,页面各不相同,现在介绍一下网页的基本组成、结构和节点等内容,具体内容如下:网页的组成节点数及节点的关系选择器网页相关概念2、网页基础网页组成网页的是以HTML文档、JavaScript脚本和CSS样式单的方式组织。在网页上查看源码可以了解其内部结构。网页相关概念2、网页基础节点树及节点间的关系HTMLDOM将HTML文档视作树结构,这种结构被称为节点树,如下图所示:通过HTMLDOM,树中的所有节点均可通过JavaScript进行访问。所有HTML元素(节点)均可被修改,也可以创建或删除节点。网页相关概念2、网页基础节点树及节点间的关系节点树中的节点彼此拥有层级关系。父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点,同级的子节点被称为同胞(兄弟或姐妹):在节点树中,顶端节点被称为根(root);每个节点都有父节点、除了根(它没有父节点);一个节点可拥有任意数量的子;同胞是拥有相同父节点的节点。下面的图片展示了节点树的一部分,以及节点之间的关系:网页相关概念2、网页基础选择器网页由一个个节点组成,CSS选择器依据不同的节点设置不同的样式规则。在CSS中,使用选择器来定位节点。CSS选择器常见的的语法规则如下:选择器示例示例说明.ro选择所有class="intro"的元素#id#firstname选择所有id="firstname"的元素**选择所有元素elementp选择所有<p>元素element,elementdiv,p选择所有<div>元素和<p>元素elementelementdivp选择<div>元素内的所有<p>元素element>elementdiv>p选择所有父级是<div>元素的<p>元素element+elementdiv+p选择所有紧接着<div>元素之后的<p>元素[attribute][target]选择所有带有target属性元素:linka:link选择所有未访问链接:visiteda:visited选择所有访问过的链接:first-letterp:first-letter选择每一个<p>元素的第一个字母4网络爬虫的概念教学内容-数据采集基础网络爬虫策略1网络爬虫的分类2网页相关概念3网络爬虫策略互联网可以看成一个超级大的“图”,而每个页面可以看做是一个“节点”,页面中的链接可以看成是图的“有向边”,能够通过图的遍历方式对互联网这个超级大“图”进行访问。依据互联网的特性,互联网遍历有以下几种:宽(广)度优先遍历深度优先遍历带偏好的爬虫网络爬虫策略1、
图的宽度优先遍历图的宽度优先遍历(BFS)算法是一个分层搜索的过程,和树的层序遍历算法相同。图中一个节点,作为起始节点,然后按照层次遍历的方式,一层一层地进行访问。依据互联网的特性,互联网遍历过程如下:1.顶点V入队列;2.当队列非空时继续执行,否则算法为空;3.出队列,获得队头节点V,访问顶点V并标记V已经被访问;4.查找顶点V的第一个邻接顶点col;5.若V的邻接顶点col未被访问过,则col进队列;6.继续查找V的其他邻接顶点col,转到步骤5,若V的所有邻接顶点都已经被访问过,则转到步骤2。网络爬虫策略1、
图的宽度优先遍历爬虫项目是从一系列的种子链接开始的。所谓种子链接,就好比宽度优先遍历中的种子节点。实际的网络爬虫项目中种子链接可以有多个,而宽度优先遍历的种子节点只有一个。宽度优先遍历流程:1.将初始的种子URL放入TODO表;2.TODO表中取得一条链接,和Visited表中的链接进行比较,若Visited表中存在此链接(表示已被访问过),跳过不做处理;不存在(表示未被访问过),继续进行。3.对链接进行解析,把页面中新解析出的URL放入TODO表中4.处理完毕后,将本页面的链接地址直接存入Visited表中;5.继续步骤2,循环往复。网络爬虫策略1、图的宽度优先遍历宽度优先遍历爬虫优势:重要的网页往往离种子比较近,距离越远重要性越低,宽度优先遍历能最先抓取重要页面;万维网的最大深度能达到17层,到达指定网页总存在一条最短路径,宽度优先遍历会以最快的速度达到指定网页;宽度优先有利于多爬虫的合作抓取,多爬虫合作通常先抓取站内链接,抓取的封闭性很强。网络爬虫策略2、深度优先遍历深度优先遍历类似于树的前序遍历。采用的搜索方法是尽可能先对纵深方向进行遍历。具体流程如下:1.访问出发点V,并将其标记为已访问过;2.依次从V出发搜索V的每个邻接点W。若W未曾访问过,则以W为新的出发点继续进行深度优先遍历,直至所有和源点V有路径相通的顶点(亦称为从源点可达的顶点)均已被访问为止;3.若此时仍有未访问的顶点,则另选一个尚未访问的顶点作为新的源点重复上述过程,直至所有顶点均已被访问为止。网络爬虫策略示例:如图选择A作为种子节点,则深度优先遍历的过程如表所示:遍历过程中出队列的节点顺序就是图的深度优先遍历的访问顺序:A->B->E->C->D操作队列中元素
初始空A入队列AA出队列空B入队列BB出队列空E入队列EC入队列ECE出队列CC出队列空D入队列DD出队列空2、深度优先遍历宽度优先VS深度优先广度优先遍历是以层为顺序,将某一层上的所有节点都搜索到了之后才向下一层搜索;深度优先遍历是将某一条枝干上的所有节点都搜索到了之后,才转向搜索另一条枝干上的所有节点。网络爬虫策略抓取URL时,给待遍历的网页赋予一定的优先级,根据这种优先级进行遍历,这种方法称为带偏好的遍历。优先级的依据判断网页的重要性的因素很多,主要有链接的欢迎度、链接的重要度和平均链接深度等因素:链接欢迎度。主要是由反向链接(
backlinks,即指向当前URL的链接)的数量和质量决定的,定义为IB(P)。链接的重要度。一个关于URL字符串的函数,考察字符串本身(如.com,.cc
),定义为IL(P)。平均链接深度。根据宽度优先的原则计算出全站的平均链接深度,然后认为距离种子站点越近的重要性越高,定义为ID(P)。网络爬虫策略3、
带偏好的爬虫最佳优先爬虫实现最佳优先爬虫最简单的方式可以使用优先级队列来实现TODO表,并且把每个URL的重要性作为队列元素的优先级。这样,每次选出来扩展的URL就是具有最高重要性的网页。示例:若图节点的重要性为D>B>C>A>E>F>I>G>H,则遍历的过程如表所示:网络爬虫策略TODO表Visited表A空BCDEFAB,C,E,FA,DC,E,FA,D,BE,FA,D,B,CF,HA,D,B,C,EG,HA,D,B,C,E,FHA,D,B,C,E,F,GIA,D,B,C,E,F,G,H空A,D,B,C,E,F,G,H,I小结:网络爬虫流程、分类网页相关概率:http协议、请求与响应
网页结构(html,js,css)数据采集与预处理24-5月-23网络爬虫的作用及流程:通用网络爬虫体系结构http基本原理http的请求和响应方式复习1response对象(响应)静态网页数据采集--Requests库Requests库及常用方法(请求)2
通用代码框架31、Requests库简介Requests库是使用Python语言编写,基于Urllib开发,采用Apache2Licensed开源协议的HTTP库,可以帮助我们发送请求,获取请求响应的数据,如指定网页的HTML内容。Requests库支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的URL和POST数据自动编码等功能。它比urllib更加方便,可以帮助我们节约大量的开发工作量,是初学者的最佳选择。Requests库安装及常用方法2、Requests库安装为了减少安装过程中出现的问题,建议将pip强制升级为最新版本。由于缺省情况下python以及相关包从国外网站/simple下载,速度较慢,容易出现超时等问题,建议使用国内镜像如清华镜像进行升级安装。python第三方库的安装都建议使用-i参数切换为国内镜像地址。pip升级的完整命令如下所示。windows下requests库安装方法为,在命令行下输入如下命令pipinstallrequests-i/simple安装过程中,容易出现错误“pip不是内部或外部命令,也不是可运行的程序或批处理文件”。问题原因也是安装python过程中,没有选择“AddPython3.XtoPATH”选项。可手工添加至环境变量。Requests库安装及常用方法#切换镜像需要使用-i参数,/simple为清华镜像地址python-mpipinstall-U--force-reinstallpip-i/simple2、Requests库安装Requests库的安装小测试Requests库安装及常用方法3、Requests常见方法开发过程中有可能使用到的Http请求有Post、Delete、Put、Get,分别对应增删改查四种方式。一般来说Post和Get请求使用频率较高。Requests库针对各种请求方式都进行良好的封装。使用Requests发送请求前,必须使用importrequests导包。Requests库的主要请求方法如下表所示。Requests库安装及常用方法Requests库安装及常用方法request.request(method,url,**kwargs):
1、method:请求方式,对于get/post/put等7种2、url:获取页面的url链接3、**kwargs:控制访问的参数,共13个(小组课后作业)method请求方式:
r=requests.request('GET',url,**kwargs)r=requests.request('HEAD',url,**kwargs)r=requests.request('POST',url,**kwargs)r=requests.request('PUT',url,**kwargs)r=requests.request('PATCH',url,**kwargs)r=requests.request('DELETE',url,**kwargs)r=requests.request('OPTIONS',url,**kwargs)3、Requests常见方法
Requests库安装及常用方法既然Requests库有这么多的请求方式,我们该如何选择?难道可以任意使用?结合浏览器的开发者工具,可以很好的确定请求方式。举例说明,如在百度中输入“python”,在点击“百度一下”按钮前,F12打开浏览器(推荐使用Chrome浏览器)的开发者工具。切换到“Network”选项卡,点击“百度一下”按钮,会发现“Network”选项卡下拦截到很多请求,可根据类型进行过滤,也可逐一进行查找。对于爬虫来说一般选择XHR(ajax请求)或Doc(HTML),我们选择XHR过滤后请求后如图所示。答案是否定的。到底应该使用哪种请求方式。由目标网站的开发者决定,我们只能被动适应。从爬虫编写的角度来说,get请求占大多数,post请求只有特殊情况下使用,如模拟登录。Requests库安装及常用方法鼠标点击请求,根据查找关键字“python”或返回的内容确定真正的请求,如图所示。Headers中的RequestMethod为请求方式。Preview可以预览返回的数据。3、Requests常见方法4、
Requests库的Get方法Requests库安装及常用方法4、
Requests库的Get方法requests.get(url,params=None,
**kwargs)∙
url:
拟获取页面的url链接∙
params:
url中的额外参数,字典或字节流格式,可选∙**kwargs:
12个控制访问的参数Requests库安装及常用方法4、
Requests库的Get方法案例一:获取西安电子科技大学出版社的首页Html内容。url:Requests库安装及常用方法4、
Requests库的Get方法案例一:获取西安电子科技大学出版社的首页Html内容。url:Requests库安装及常用方法Requests库安装及常用方法选择西电首页“教材”分类中的计算机后,会发现url地址跳转到/Pages/booklist.aspx?classid=1.1.2.。其中问号?代表后续内容为参数传递,参数传递遵循?key=value&key1=value的格式,如?classid=1.1.2。这种方式是Http协议中Get请求的基本参数传递方式,requests库的参数传递也使用这种方式。如获取教材中的计算机类图书的html,可将代码进行如下修改。4、
Requests库的Get方法5、
Requests库的Post方法Requests库安装及常用方法requests.post(url,data=None,**kwargs)
url:获取页面的url链接data:字典、字节序列或文件对象,作为Requests的内容**kwargs:12个控制访问的参数2Requests库及常用方法(请求)静态网页数据采集--Requests库response对象(响应)1
通用代码框架3response对象由服务端返回给客户端,可分为三部分:响应状态码(ResponseStatusCode)响应头(ResponseHeaders)响应体(ResponseBody)response对象响应1响应状态码2响应头3空行4响应体发送请求后,requests可获得响应response对象的信息:状态码、响应头、Cookies、Content等,具体的响应信息如下:r.text:获取响应的文本内容;r.status_code:获取响应的状态码;r.headers:获取指响应头信息;r.cookies:获取Cookies信息;r.url:获取请求的URL;r.history:获取请求的历史信息;r.request:获取请求的方式;response对象响应response对象Response对象属性response对象案例二:查看百度爬取对象的相关信息response对象案例二:查看百度爬取对象的相关信息response对象r.encoding:如果header中不存在charset,则认为编码为ISO‐8859‐1r.text根据r.encoding显示网页内容r.apparent_encoding:根据网页内容分析出的编码方式可以看作是r.encoding的备选理解response的编码3Requests库及常用方法(请求)静态网页数据采集--Requests库通用代码框架1response对象(响应)2通用代码框架理解Requests库的异常通用代码框架理解Response的异常通用代码框架任务1手机号码查询【任务描述】练习使用通用爬虫框架获取静态网页的文本内容。使用Requests库,获取/手机归属地查询结果,并打印输出页面的HTML文本内容。【分析】
目标页面如下图所示。输入合法数据,观察页面请求的规律。输入任意合法手机号后点击查询,页面跳转,发现浏览器地址栏发生变化。观察得知,:8080/search.asp?mobileaction=mobile中mobile查询参数后为查询的手机号码,是典型的Get请求。任务2QQ表情包下载【任务描述】使用Requests库下载/zjbq/网站中任意表情包图片。【分析】目标页面如下图所示下载图片首先需要确定图片的url地址,需要结合浏览器的开发者工具进行分析。F12打开浏览器的开发者工具,点击元素选取器
,移动鼠标到网页图片,观察页面结构。页面中的表情包图片是通过img标签控制显示,src属性值是图片的真实url地址。src属性以/开头,代表是网站的根路径,无法进行直接访问,需要将域名拼接到Src属性前。如当前选取图片的src属性为/tp/zjbq/202003091800097905.gif,完整的请求地址为/tp/zjbq/202003091800097905.gif。可直接复制地址到浏览器中进行验证。小结Requests库常用的方法:get,postResponse对象常用属性Requests库Requests库常用的方法:get,post,13个控制参数(小组讨论结果)Response对象常用属性:复习理解Cookies和Session的概念熟练掌握Requests的会话对象的使用熟练掌握Requests的Post请求用法能够使用开发者工具进行请求分析教学目标1Cookie与session静态网页数据采集--Requests库Requests库入门任务讲解2
Requests库模拟会话3Requests库入门任务讲解任务1:手机号码查询【任务描述】练习使用通用爬虫框架获取静态网页的文本内容。使用Requests库,获取/手机归属地查询结果,并打印输出页面的HTML文本内容。【分析】
目标页面如下图所示。输入合法数据,观察页面请求的规律。输入任意合法手机号后点击查询,页面跳转,发现浏览器地址栏发生变化。观察得知,:8080/search.asp?mobileaction=mobile中mobile查询参数后为查询的手机号码,是典型的Get请求。Requests库入门任务讲解任务2:QQ表情包下载【任务描述】使用Requests库下载/zjbq/网站中任意表情包图片。【分析】目标页面首先需要确定图片的url地址,需要结合浏览器的开发者工具进行分析。F12打开浏览器的开发者工具,点击元素选取器
,移动鼠标到网页图片,观察页面结构。页面中的表情包图片是通过img标签控制显示,src属性值是图片的真实url地址。src属性以/开头,代表是网站的根路径,无法进行直接访问,需要将域名拼接到Src属性前。如当前选取图片的src属性为/tp/zjbq/202003091800097905.gif,完整的请求地址为/tp/zjbq/202003091800097905.gif。可直接复制地址到浏览器中进行验证。2Requests库入门任务讲解静态网页数据采集--Requests库Cookie与Session1
Requests库模拟会话31、Requests模拟登录需要登录之后才能进行页面爬取的情况,属于深层次的网页爬取。我们将讲一些大家熟悉的例子,比如爬取猎聘网招聘信息、QQ邮箱邮件的内容,这种网站对权限的管理非常严格,不同的角色权限,对应的网页内容是不同的。模拟登录由于涉及到用户名和密码等隐私数据,一般网站的设计人员会使用Post方式向网站的后台进行数据提交,密码也不是明码传输,而是加密后传输。需要使用浏览器的开发者工具拦截网络请求分析出登录提交的URL地址。Cookie与Session1、Requests模拟登录分析出登录的URL地址后只是迈出了关键的一步,实际上现在的网站为了应对爬虫爬取,避免别有用心的人恶意登录和注册,大多数都会采用验证码技术。现在普遍使用验证码的技术除了图片验证码外,还有短信验证码、滑动拼图、图标点选等多种方式。有些验证码可以通过机器学习等技术手段解决,有些只能依靠打码平台人工识别。网络传输协议HTTP是一种无状态的协议。使用用户登录来举例,用户登录向Web服务端请求,验证通过后跳转到主页,然后连接会断开,不会一直持续连接。再次发送请求,HTTP协议无法知晓用户已经登录过,无记忆功能。为了解决状态保持的问题,在Web开发中常用Cookies和Session来实现状态保持机制。Cookie与Session2、Cookies机制存储cookie是浏览器提供的功能。cookie其实是存储在浏览器中的纯文本,浏览器的安装目录下会专门有一个cookie文件夹来存放各个域下设置的cookie。当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request请求中header的cookie字段中。这些是浏览器自动帮我们做的,而且每一次http请求浏览器都会自动帮我们做。Cookie与Session2、Cookies机制存储在cookie中的数据,每次都会被浏览器自动放在http请求中,如果这些数据并不是每个请求都需要发给服务端的数据,浏览器这设置自动处理无疑增加了网络开销;但如果这些数据是每个请求都需要发给服务端的数据(比如身份认证信息),浏览器这设置自动处理就大大免去了重复添加操作。所以对于那设置“每次请求都要携带的信息(最典型的就是身份认证信息)”就特别适合放在cookie中,其他类型的数据就不适合了。Cookie与Sessioncookie最典型的应用是:(一):判断用户是否登陆过网站,以便下次登录时能够直接登录。如果我们删除cookie,则每次登录必须从新填写登录的相关信息。
(二):另一个重要的应用是“购物车”中类的处理和设计。用户可能在一段时间内在同一家网站的不同页面选择不同的商品,可以将这些信息都写入cookie,在最后付款时从cookie中提取这些信息,当然这里面有了安全和性能问题需要我们考虑了。2、Cookies机制可通过浏览器开发者工具,查看cookies。在浏览器中打开百度,F12打开开发者工具,选择Application选项卡。在左侧目录树中选择Cookies,就可以查看网站使用的cookie。Cookie与Session3、Session机制Session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。当程序需要为某个客户端的请求创建一个Session时,服务器首先检查这个客户端的请求(cookie)里是否已包含了一个Session标识(称为SessionId)。如果已包含则说明以前已经为此客户端创建过Session,服务器就按照SessionId把这个session检索出来使用(检索不到,会新建一个);如果客户端请求不包含SessionId,则为此客户端创建一个Session并且生成一个与此Session相关联的Sessionid,SessionId的值应该是一个既不会重复,又不容易被找到规律以仿造字符串,这个SessionId将被在本次响应中返回给客户端保存。Cookie与Session3、Session机制保存这个Sessionid的方式可以采用Cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。一般这个cookie的名字都是类似于SEEESIONID。但cookie可以被人为的禁止,则必须有其他机制以便在cookie被禁止时仍然能够把sessionid传递回服务器。服务器也可以通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。如果客户端Cookie禁用,则服务器可以自动通过重写URL的方式来保存Session的值,并且这个过程对程序员透明。Cookie与Session4、Session与Cookie区别和联系cookie数据存放在客户的浏览器上,session数据放在服务器上。cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。Cookie与Session3Requests库入门任务讲解静态网页数据采集--Requests库Requests库模拟会话1
Cookie与Session2Requests库支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的URL和POST数据自动编码等功能。保持登陆的cookie和session机制都用到了Cookies,爬虫可以通过Cookies保持登陆状态这个特性,以实现登录爬取。再发起请求的时候,如果给爬虫添加一个已经登录的Cookies,就可以通过Cookies直接登录网站,从而访问网站的深层页面。Requests库模拟会话Requests会话对象能够跨请求保持某些参数如Cookies,即同一个Session实例发出的所有请求都保持在同一个Cookies,而Requests模块每次会自动处理Cookies,这样就可以很方便地处理登录时保存的Cookies问题。因此,如果想要在爬虫代码中保持登录状态,可以使用Requests会话对象。如果使用会话对象发起请求,底层的TCP连接将会被重用,也带来显著的性能提升。Requests库模拟会话Requests库模拟会话
方法一:利用cookie直接登录可以看到Session会话对象在两次请求之间保持了第一次访问所设置的Cookies。Requests库模拟会话方法二:利用session方法登录网站Requests库模拟会话Session会话对象也可以用来为请求方法提供缺省数据。通过为会话对象的属性提供数据来实现的。RequestsPost请求在Web开发中Get请求和Post请求有非常广泛的应用。Get请求适用于数据小不敏感的数据请求,将请求参数拼接在url地址后,以键/值的方式进行传递,多个参数之间以&进行连接。目标地址和参数之间以?分隔。如在百度中输入python,观察浏览器的地址栏,/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=python。其中/s为请求地址,问号后的部分为请求参数。除了Get请求外,对于Form表单的数据、敏感数据更适用于Post请求。Url地址栏不会发生变化,可通过浏览器的开发者工具拦截请求。观察Formdata的数据。以下通过百度登录,熟悉拦截Post请求。Requests库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024高考政治一轮复习第四单元认识社会与价值选择第十二课实现人生的价值课时作业含解析必修4
- 软件公司装修施工合同范本
- 化工园区桩基工程合同
- 焙烧厂电力系统安装合同
- 室内装修简易施工合同协议书
- 印刷设计聘用合同证明
- 重阳节安全教育主题班会
- 《专业家电连锁卖场》课件
- 【初中道法】交友的智慧+课件-2024-2025学年统编版道德与法治七年级上册
- 读《自卑与超越》有感
- GB/T 44051-2024焊缝无损检测薄壁钢构件相控阵超声检测验收等级
- TD/T 1060-2021 自然资源分等定级通则(正式版)
- 完整加快发展新质生产力课件
- 三位数除以两位数300题-整除-有标准答案
- 办公室装修工程施工方案讲义
- 奇异的仿生学 知到智慧树网课答案
- 大学生职业生涯规划书药学专业
- 中医病案辩证分析报告
- 《马克思主义基本原理概论》试题库(a卷)
- 中国农业银行贷后管理办法
- 食堂油锅起火演练方案
评论
0/150
提交评论