python学习第一章

2021-03-02 01:25

阅读:539

标签:一个   解析   入门   let   referer   ble   方式   传参   发送   

1.http:

(1)当前用户在地址输入了网址 发送网络请求的过程是什么
(2)http的请求方式

? get请求

? 比较便捷

? 缺点:不安全:明文

? 参数的长度有限度

? post请求

? 比较安全

? 数据整体没有限制

? 上传文件

? put(不完全的)

? delete(删除一些信息)

发送网络请求(需要带一定的数据给服务器不带数据也可以)

请求头里面requestheader

返回数据: response

? head(请求头)

Request Headers

(1)Accept:文本的格式

(2)Accept-Encoding:编码格式

(3)Accept-Language:返回语言

(4)Connection:长链接 短链接

(5)Cookie:缓存 验证用的

(6)Host:域名

(7)Referer:标志从哪个页面跳转过来的

(8)User-Agent:浏览器和用户的信息

Response Headers

Cache-Control:数据缓存大小

Date:发送网络请求的时间

Expires:发送请求结束时间

Server:服务器信息

Set-Cookie:设置cookie的要求

Query String Parameters

2.爬虫入门:使用代码模拟用户 批量的发送网络请求 批量的获取数据

(1)爬虫的价值:

? 1.买卖数据(高端的领域价格特别贵)

? 2.数据分析:出分析报告

? 3.流量

? 4.指数 阿里指数,百度指数

(2)合法性:灰色产业

? 政府没有法律规定爬虫是违法的,也没有法律规定爬虫是合法的

? 公司概念:公司让你爬取数据库(窃取商业机密)责任在公司

(3)爬虫可以爬取所有东西?

? (不是)爬虫只能爬取用户能访问到的数据

? 例如:爱奇艺的视频(vip非vip)

? 1.普通用户 只能看非vip 爬取非vip视频

? 2.vip 爬取vip的视频

? 3.普通用户想要爬取vip视频(黑客)

(4)爬虫的分类:
1.通用爬虫

? (1) 使用搜索引擎:百度 谷歌 360 雅虎 搜狗

? 优势:开放性 速度快

? 劣势:目标不明确,返回内容基本上使用户不需要的(不清楚用户的需求是什么)

2.聚焦爬虫

? (1) 目标明确

? (2) 对用户的需求非常精准

? (3) 返回的内容很固定

? 增量式:翻页:从第一页请求到最后一页

? Deep 深度爬虫:

? 静态数据:http,css

? 动态数据:js代码,加密js

? robots:是否允许其他爬虫(通用爬虫)爬取某些东西

? 聚焦爬虫不遵从robots

? 爬虫和反爬作斗争:资源对等 胜利的永远是爬虫

(5)爬虫的工作原理:

? 1.取人你抓取目标的url是哪一个

? 2.使用python代码发送请求获取数据(java Go)

? 3.解析获取到的数据(精确数据)

? (1) 找到新的目标(url)回到第一步(自动化)

? 4.数据持久化

(6)python3(原生提供的模块):urlib.request

? urlopen:response对象

? 1.返回response对象

? 2.response.read()

? 3.bytes.decode("utf-8")

? get:传参

? 1.汉字报错:解释器ascii没有汉字,url汉字转码

? urllib.parse.quote safe = "string.printtable"

? 2.字典传参

? urllib.parse.urlencode()

? post:

? urlib.request.openurl(url,data="服务器接收的数据")

? handler处理器的自定义:

? User-Agent:

? 1.模拟真实的浏览器发送请求:(1)百度批量搜索(2)检查元素(百度搜索useragent大全)

? 2.request.add_header(动态添加head数据)

? 3.相应头 response.header 获取请求头信息request.get_header("请求头名称")

? 4.创建request:urllib.request.Request(url)

? urlError

? python(原生提供的):urlib2

? request(第三方)

(7)数据解析:xpath bs4
(8)python爬取的数据类型:str bytes

? 如果爬取回来的是bytes类型:但是你写入的时候需要字符串 decode("utf-8")

? 如果爬取过来的数据是str类型:但要写入的是bytes类型 encode("utf-8")

python学习第一章

标签:一个   解析   入门   let   referer   ble   方式   传参   发送   

原文地址:https://www.cnblogs.com/yxh-zixishi/p/14425450.html


评论


亲,登录后才可以留言!