前言

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

因为是自学爬虫,虽说有点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开发、数据库、数据分析、人工智能、安全等)几乎都有交集,所以学好爬虫,相当于为其他领域铺好一个台阶

小结

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

(Python)爬虫学习(一)相关推荐

  1. python爬虫正则表达式实例-python爬虫学习三:python正则表达式

    python爬虫学习三:python正则表达式 1.正则表达式基础 a.正则表达式的大致匹配过程: 1.依次拿出表达式和文本中的字符比较 2.如果每一个字符都能匹配,则匹配成功:一旦有匹配不成功的字符 ...

  2. Python爬虫学习系列教程

    大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己实际写的一些小爬虫,在这里跟大家一同分享,希望对Python爬虫 ...

  3. 新手python爬虫代码_新手小白必看 Python爬虫学习路线全面指导

    爬虫是大家公认的入门Python最好方式,没有之一.虽然Python有很多应用的方向,但爬虫对于新手小白而言更友好,原理也更简单,几行代码就能实现基本的爬虫,零基础也能快速入门,让新手小白体会更大的成 ...

  4. Python爬虫学习系列教程-----------爬虫系列 你值的收藏

    静觅 » Python爬虫学习系列教程:http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把 ...

  5. Python 爬虫学习 系列教程

    Python爬虫 --- 中高级爬虫学习路线 :https://www.cnblogs.com/Eeyhan/p/14148832.html 看不清图时,可以把图片保存到本地在打开查看... Pyth ...

  6. 从入门到入土:Python爬虫学习|实例练手|爬取LOL全英雄信息及技能||异步加载|初级难度反扒处理|寻找消失的API

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  7. 从入门到入土:Python爬虫学习|实例练手|详细讲解|爬取腾讯招聘网|一步一步分析|异步加载|初级难度反扒处理|寻找消失的API来找工作吧

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  8. 从入门到入土:Python爬虫学习|实例练手|爬取猫眼榜单|Xpath定位标签爬取|代码

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  9. 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  10. 从入门到入土:Python爬虫学习|实例练手|爬取新浪新闻搜索指定内容|Xpath定位标签爬取|代码注释详解

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

最新文章

  1. java 语言如何判断素数_C语言实验之判断素数(循环结构java)方法讲解
  2. C++debug调试出现heap corruption detected: after normal block 可能的原因
  3. python psutil 获取命令历史_Python使用psutil获取进程信息的例子
  4. pycharm vim 插件IdeaVIM
  5. 路由器上的lookback是什么?有什么作用?
  6. 华为8817升级Android5,华为c8817E官方升级包大集合
  7. Java编程思想(一)
  8. 电路分析基础笔记(静态电路+动态电路)
  9. 世界上第一个徒步环球旅行的人
  10. 有关计算机和音乐论文,计算机音乐
  11. android电视安装app
  12. 计算一元二次方程(考虑实根虚根无解)
  13. 不需要任何化学药剂的污水处理设备(微纳米气泡技术)
  14. Jquery监听onChange事件
  15. 2021 年最新的个人录制的前后端真正的免费编程学习视频
  16. 公司食堂-美团2021校招笔试(线性数据结构的应用)
  17. C语言求最大公约数之(辗转相除法)
  18. Javascript:一个屌丝的逆袭
  19. 大数据和云计算技术周报(第116期)
  20. 硬盘分区、数据恢复软件——DiskGenius 绿色版

热门文章

  1. 人体+LED,实现人体感应灯
  2. Matlab基础——变量和语句
  3. 2016.2.10-2.24 中关村图书大厦实习--图书管理系统;
  4. n76e003引脚图_新唐推出N76E003高规格低管脚1T 8051单片机
  5. alin的学习之路:面试题 数据库相关
  6. Warning: Class ‘com.xxx.xxx‘ not found in module ‘xxxx‘
  7. Java基础语言(可查阅)
  8. 如何使用cookie信息,完成自动登录
  9. Java equal
  10. 奥比中光相机的python采集代码