十五天学会爬虫:第一天

爬虫第一天

学习目标

  • 记忆 爬虫流程
  • 记忆 浏览器发送http请求的过程
  • 记忆 HTTP请求头的形式
  • 能够说明 str , bytes以及互相转换
  • 能够说明 requests的基本使用,以及Response对象
  • 能够说明 requests.text和requests.content的区别
  • 能够说明 requests模块发送带headers的请求
  • 能够说明 requests模块发送带参数的get请求

爬虫的概念

爬虫就是模拟客户端发送网络请求,接受请求对应的响应。

爬虫与反爬虫之间的战争:资源同等 爬虫胜利

爬虫的分类

  • 通用爬虫(搜索引擎)
  • 聚焦爬虫(针对特定网站的爬虫)

爬虫流程

爬虫步骤

浏览器发送HTTP请求的过程

在这里插入图片描述

HTTP请求头的形式

HTTP请求头是由键值对组成的,每行一对,键与值用英文冒号":"分隔

HTTP常见请求头

  • Host(主机和端口号)
  • Connection(链接类型)
  • Upgrade-Insecure-Requests(升级为HTTPS请求)
  • User-Agent(用户代理)
  • Accept(传送文件类型)

str , bytes以及互相转换

python3中有两种字符串类型:

  • str : unicode的呈现形式
  • bytes : 字节类型,互联网上数据都是以二进制的方式(字节类型)传输的

使用方法:

  • str 使用encode(编码)方法转化为 bytes
  • bytes 使用decode(解码)方法转化为 str

requests的基本使用,以及Response对象

调用reqests库

import requests

使用requests发送get请求

res = requests.get(url)  # res为一个response对象

response的常用属性

属性说明
res.text以字符串形式,获取数据
res.content以二进制形式,获取数据
res.status_code获取请求状态码
res.request.headers获得请求头
res.headers获得响应头

response.text 和response.content的区别

response.textresponse.content
类型strbytes
解码类型根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码没有指定
如何修改编码方式response.encoding=”gbk”response.content.deocde(“utf8”)

获取网页源码的通用方式(从前往后尝试,能100%的解决所有网页编码问题):

1. response.content.decode()
2. response.content.decode("GBK")
3. response.text

requests模块发送带headers的请求

为什么请求需要带上headers?

模拟浏览器,诈骗服务器获取和浏览器一致的内容

  • headers的形式:字典
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}

用法

requests.get(url,headers=headers)

requests模块发送带参数的get请求

参数的形式:字典

kw = {'wd' : 'python'}

用法

requests.get(url, params = kw)
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值