学习爬虫(第二天)

302 临时重定向

几个概念

GET和POST

GET : 查询参数都会在URL上显示出来
POST : 查询参数和需要提交数据是隐藏在Form表单里的,不会在URL地址上显示出来

URL组成部分

• URL: 全球统一资源定位符

https://new.qq.com/omn/TWF20200/TWF2020032502924000.html
https: 协议
new.qq.com : 主机名 省略了端口 443
omn/TWF20200/TWF2020032502924000.html 访问资源的路径
anchor : 锚点 前端用来做页面定位 锚点做导航

• https://new.qq.com/omn/TWF20200/TWF2020032502924000.html
• https: 协议
• new.qq.com: 主机名可以将主机理解为一台名叫 news.qq.com 的机器。这台主机在 qq.com 域名下
• port 端口号: 80 /new.qq.com 在他的后面有个 :80 可以省略
• TWF20200/TWF2020032502924000.html 访问资源的路径
• #anchor: 锚点用前端在做页面定位的
• 注意 : 在浏览器请求一个url,浏览器会对这个url进行一个编码。(除英文字母、数字和部分标识其他的全部使用% 加 十六进制码进行编码)
• 例如 : https://tieba.baidu.com/f?ie=utf-8&kw=%E6%B5%B7%E8%B4%BC%E7%8E%8B&fr=search
• %E6%B5%B7%E8%B4%BC%E7%8E%8B = 海贼王

User-Agent 用户代理(ua伪装每次爬虫必须要)

• 作用:记录用户的浏览器、操作系统等,为了让用户更好的获取HTML页面效果
User-Agent:
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
• Mozilla Firefox:(Gecko内核)

Referer

• 表明当前这个请求是从哪个url过来的。一般情况下可以用来做反爬的技术

状态码

• 200 : 请求成功
• 301 : 永久重定向(一个旧地址会转跳到新地址 输入即转跳)
• 302 : 临时重定向(比如进知乎他会302让你登入账号密码先)
• 404 : 请求失败(服务器无法根据客户端的请求找到资源(网页))
• 500 : 服务器内部请求
5. 抓包工具
在这里插入图片描述

• Elements : 元素 网页源代码,提取数据和分析数据(有些数据是经过特殊处理的所以并不是都是准确的)
• Console : 控制台 (打印信息)
• Sources : 信息来源 (整个网站加载的文件)
• NetWork : 网络工作(信息抓包) 能够看到很多的网页请求

urllib.request模块

版本

python2 :urllib2、urllib
python3 :把urllib和urllib2合并,urllib.request

常用的方法

• urllib.request.urlopen(“网址”) 作用 :向网站发起一个请求并获取响应
• 字节流 = response.read()
• 字符串 = response.read().decode(“utf-8”)
• urllib.request.Request"网址",headers=“字典”) urlopen()不支持重构User-Agent

响应对象

• read() 读取服务器响应的内容
• getcode() 返回HTTP的响应码
• geturl() 返回实际数据的URL(防止重定向问题)

urllib.parse模块

常用方法

urllib.request

urllib.request.urlopen()
urlopen他的结果可以直接进行文件操作 但是他不支持ua伪装
urllib.request.Request()
Request和requests模块一样可以支持ua伪装等一些操作
response.read() bytes
response.read().decode(‘utf-8’) str
在这里插入图片描述

urllib.parse

urlencode(字典) (必须输入字典才能翻译)
在这里插入图片描述

quote(字符串) (这个里面的参数是个字符串)
在这里插入图片描述

urllib模块练习

#####图片下载练习
在这里插入图片描述

请求方式

• GET 特点 :查询参数在URL地址中显示
• POST
• 在Request方法中添加data参数 urllib.request.Request(url,data=data,headers=headers)
• data :表单数据以bytes类型提交,不能是str

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值