1. 什么是爬虫?

爬虫就是模拟客户端(浏览器)发送网络请求,获取响应,按照规则提取数据的程序

模拟客户端(浏览器)发送网络请求:照着浏览器发送一模一样的请求,获取和浏览器一模一样的的数据

 

  1. 爬虫的数据去哪了

呈现出来:展示在网页上,或者是展示在app上

进行分析:从数据中寻找一些规律

Eg:节日头条:爬虫起家的公司,聚合的模式;baidu新闻等

百度指数 2017车展温度计

 

  1. 需要的软件和环境

Python3     3.6.3最稳定  3.7

黑马python基础班15天视频  

Python的基础语法(字符串,列表,字典,判断和循环)、

函数(函数的创建和调用)

面向对象(如何创建一个类,如何使用一个类)

Pycharm编辑器

Chrome浏览器;分析网络请求   右键 检查 network

 

 

  1. 浏览器的请求

url 在chrome中点击检查,点到network

url=请求的协议+网站的域名+资源的路径+参数

url 解码  百分号后解码为中文

responds     js调整网页内容的工具或程序(flash 小动画效果)    css帮助页面的样式显示出来

elements

 

浏览器请求url地址 :当前url的响应+js+css+图片===》element中的内容

爬虫请求url地址(不会下载js css等)

当前url对于的响应

Element的内容和爬虫中获取url地址的响应的不同,爬虫中需要以当前url地址对应的响应 为准提取数据

*当前url地址对应的响应在哪里

从network中找到当前的url地址,点击response

在页面上右键显示网页源码

 

页面更新数据快的网页  检查网页源码时 数据会变 但是大致结构不会变

 

*爬虫  投票:点击人  点击投票按钮   用死循环可实现刷票效果

模仿浏览器做一模一样的事情  发送几次请求

抢票等···

 

  1. 认识HTTP https

http:超文本传输协议

以明文的形式传播,效率高但是不安全

Https:http+SSL(安全套接字层)

传输之前数据加密,之后解密获取内容

效率较低,但是安全

 

HTTP协议之请求

1.请求行 请求方法 

2.请求头 host     connection   cache—control    user—agent(爬虫程序还是浏览器)

User agent用户代理:对方服务器能够通过user agent知道当前请求对方资源的是什么浏览器

如果我们需要模拟手机版的浏览器发送请求,对应的,就需要把user agent改成手机版

把对方不安全的请求转换成安全的请求

接受   zip 压缩

Accept language    q表示权重  更愿意接受什么样的数据 英文中文 繁体中文

Cookie 浏览器保存在本地的信息(用来储存用户信息的,每次请求都会被携带上发送给对方的浏览器)

对方服务器会根据是否携带cookie判断我们是否是一个爬虫  

不带cookie但是可以不停的请求网站  大概率是爬虫

Refer 表示前一次请求来自哪里

 

3.请求体  get请求没有请求体  post请求有请求体

Get请求和post请求的区别

Get请求把数据放在url中,post把数据放在请求体中(考试作弊抄袭,瞟一眼)

Post请求常用于登录注册,传输大文本 ,post携带的数据量比get多,常用于大文本

 

http协议之响应

响应头 response 

Set cookie  对方服务器通过字段设置cookie 到本地

响应体

url 地址对应的响应

抓包  浏览器发送的请求

 

 

 

 

 

Request模块的学习

使用  pip install requests

发送 get  post 请求,获取响应

Response=Request. Get(url)#请求url地址对应的响应

Response=request.post(url,date={请求的字典})##发送post请求

Response的方法

Response.text

该方式往往会出现乱码,出现乱码使用response.encoding=“utf-8”

Response.content.decode

把响应的二进制字节转化为str类型

 

获取网页源码的正确打开方式 一定通过下面三种方式,一定可以获取到网页请求之前的字符串

 

#response.content.decode().

#response.content.decode(“gbk”)

#response.text

发送带header的请求

Headers 字典 冒号前是间  后面是值

使用超时参数

处理cookie相关的请求

 

 

 



 

 

 

 

 

1-2天Linux操作相关

3-10天Python基础语法

11-12天HTML、CSS基础语法

13天 网络爬虫

 

 

 

认识linux

什么是操作系统

Win  mac   Android    iOS 

 

Unix 闭源

Minix  教学

Linux  改进minix

安卓实际就是linux

Ios来自达尔文,来自bsd 来自unix

 

 

Linux内核版和发行版

发行版 ubuntu     网络安全 kali linux

物理机和虚拟机

服务器 linux或类unix

桌面操作系统 Windows

嵌入式领域 无人机 物联网 机顶盒 手机 pad等

 

1.3文件和目录

Windows和linux系统的区别

Win 先分区 多个树并列

Linux下面没有这些盘 只有目录文件夹。    根目录

Linux目录:

 /根目录

 Bin 一般放命令

 Dev放设备

Home家目录  放文件 程序等  平常放东西

Root  超级系统管理员的家目录

User  应用程序

 

相对路径和绝对路径(带/   如 cd /home 最保险,直接绝对路径跳)

Cd 切换目录的命令

Cd  /

Ls 显示当前目录里面所有的东西

 

 

Cd  home

 

 

Cd  python

 

Pwd  显示当前路径

 

 

清空clear  

 

以点开头的为隐藏文件夹

Ls –a

 

Cd..跳到顶层文件夹

点是当前路径  点点是上层路径

 

 

文件权限  linux多用户系统    windows 单用户系统

 

Ls  -a  显示所有目录  包含隐藏的

Ls    

 

QQ空间的权限 我是管理者 都可以访问

同事设置 qq好友 用户组

其他组 无法访问

 

-rw-rw-r--

- 文件类型(d为文件  -普通目录)

所有者拥有的权限 可读 可写

用户组拥有的权限 可读 可写

其他组拥有的权限 可读

(r read      w write  x 可执行)

 

 

 

 

 

 

1.4  常用基本命令

 

命令 –help  能看到帮助信息

 

man  mannual手册 (有问题找男人)

按b 后一页

   F 前一页.

 

Q退出man命令

 

Man ls

 

 

自动补全   tab键(注意首字母相同,就用两个字母)

Cd downloads      

历史命令 history