(Python)爬虫学习(一)

前言

昨天做正则表达式实践时用到了爬虫技术,那只是最浅显的一次运用,让我感到大有可为,也很感兴趣,于是接下来的一段时间打算较为深入的学习下,最起码完成既定目标(成功爬取美女图片极简壁纸唯美女生这三个图片网址上的两个或三个

因为是自学爬虫,虽说有点Python基础,但还是感到一阵心虚(想学好),于是联想自己的学习经历,发现入门课程(但又不局限于入门)如果有位好老师带,那将是非常幸运且幸福的事,之所以这样讲,是之前学习过程中,有几门课程的老师给我留下了非常深的印象,这里罗列下,以表感激之情

课程机构 老师哪里看
HTML+CSS入门渡一教育 袁进腾讯课堂
软件工程之美微软 宝玉极客时间
计算机网络哈尔滨工业大学 李全龙中国大学MOOC
Python鱼C 小甲鱼B站

回归正题,基于这样的理念,就花了点功夫找爬虫课程,发现崔庆才(网络上尊称大神)视频课程、博文教程做的很好(Python3爬虫入门到精通课程、静觅),但年代有点久远,就尝试性听了一节47分钟的课,我个人认为真就名副其实,思路还有讲解很合口味,虽说爬虫课程要讲究时效性,但基础知识和流程在这门课上还是可以学习到一些的,最为重要的是,崔庆才大神的博文教程写得非常之详细,且不断更新以及时效性权威性还是很强的,可以跟进学习博文教程

学习记录

爬虫基本原理讲解

什么是爬虫?

请求网站并提取数据的自动化程序

爬虫基本流程

在这里插入图片描述

请求和响应

Request与Response

在这里插入图片描述

Request

在这里插入图片描述

在爬取数据时要模拟浏览器请求,就要创建一个请求,请求分为4部分内容,请求方法、请求网址、请求头、请求体

常见的请求方法有两种:GET和POST

  • 在浏览器种直接输入URL并回车,这便发起的是一个GET请求,请求参数会直接包含到URL里
  • POST请求大多在表达提交时发起,比如,对于一个登录表单,输入完用户名和密码后,点击 登录 按钮,这便会发起POST请求,其数据通常以表单的形式传输,而不会体现在URL

GET和POST请求方法有如下区别

  • GET请求中的参数包含在URL里面,数据可以在URL中看到,而POST请求的URL 不会包含这些数据,数据都是以表单形式(请求体)传输
  • 一般来说登录时,要提交用户名和密码,其中包含敏感信息,使用GET方式请求的话,密码就会暴露在URL里面,造成密码泄露,所以这里最好以POST方式发送
  • 上传文件时,由于文件内容比较大,也会选用POST方式

请求头是请求的重要组成部分,写爬虫时,大部分情况要设定请求头
请求头,用来说明服务器要使用的附加信息,比较重要的信息有Cookie、Referer、User-Agent等,下面简要说明一些常用的头信息

  • Accept:请求报头域,用于指定客户端接受哪些类型的信息
  • Accept-Language:指定客户端可接受的语言类型
  • Accept-Encoding:指定客户端可接受的内容编码
  • Host:用于指定请求资源的主机IP和端口号,其内容位请求URL的原始服务器或网关的位置。从HTTP 1.1版本开始,请求必须包含此内容
  • Referer:此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做出相应的处理,如做来源统计、防盗链处理等
  • User-Agent:UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息,在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能被识别为爬虫
  • Content-Type:互联网媒体类型或者MIME类型,在HTTP协议信息头,它用来表示具体请求中的媒体类型信息。在爬虫中,如果要构造POST请求,需要使用正确的Content-Type,并了解各种请求库的各个参数设置时使用哪种Content-Type,不然可能会导致POST提交后无法正常响应
  • Cookie:常用复数形式Cookies,这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据,主要功能是维持当前访问会话

对于POST请求的请求体原来是有表单数据的,但我今天测试百度账号登录并没有发现表单数据

Response在这里插入图片描述

数据解析和数据保存

抓取的数据
在这里插入图片描述
解析数据

在这里插入图片描述
保存数据

在这里插入图片描述

爬取问题

JavaScript渲染问题

在这里插入图片描述

抓取到的网页内容和浏览器看到的不一致

使用request模块获取网页内容时,有时会发现获取的网页内容和网页上的不

一样,有些数据并非服务端渲染,而是通过后来加载的数据,某些网站重要

的数据会通过Ajax后期加载,这就分 异步传输和异步加载 两个概念

异步传输模式下,通常在JavaScript种,依次检查JavaScript,就会找到真正的网址

异步加载则是在XHR的选项种获取真实网站地址

爬虫有什么用

  • 在网上看到很多美图,比如风景、美食、美女,或者一些资料、文章,想保存到电脑上,一次次右键保存、复制粘贴显然极为费时费力,那就可以利用爬虫将这些图片或资源快速爬取下来
  • 平时可能需要到微博、百度、知乎之类的网站,统计一些数据,做产品分析,用户喜好之类分析,就可以用爬虫把这些网站上数据爬取下来,整理成我们想要的数据保存下来,就可以对其进行分析了
  • 爬虫非常适合作为入门Python的方向来学习,并且爬虫技术和其他领域(前后端Web开发、数据库、数据分析、人工智能、安全等)几乎都有交集,所以学好爬虫,相当于为其他领域铺好一个台阶

小结

先跟着大神博文学习实践,有具体问题看视频或者搜集资料解决,慢慢来,学习知识要有耐心,不能浮躁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值