requsets模板

前言

本文只讲简单requests的一些东西,要是想学习爬虫,我的另一篇文章

先说下网站爬取过程:
1)有要爬取网站的网址url;
2)检查元素(F12),查看源码找到想爬取的资源(文本、网址、、、)
3)代码部分,get请求网址,数据位置(标签索引)
4)保存爬取的数组(保存到本地)
简单爬取就这些东西

页面元素

检查元素、查看网页源代码、F12

面板(部分):

面板说明
元素面板(Elements)网页文本内容,使用元素面板可以自由的操作DOM和CSS来迭代布局和设计页面
控制台面板(Console)该面板记录各种警告与错误信息,并可作为shell在页面上与JavaScript交互
网络面板(Network)可查看页面请求、下载的资源文件、以及优化网页加载性能

各面板详解

在网页能看见的数据能在元素面板获取
网络面板中获取User-Agent、cookies,这些东西会用到
在这里插入图片描述
然后还有就是,如下图:
在这里插入图片描述
进去一个网站在元素中找到所要的数据后,需要进一步查看以下信息:
1、选择网络栏(NetWork)
2、找到本页面网站的选项
3、查看url
4、查看请求类型,get或post,大多是get
5、网站数据格式,一般是text或json

Requests库请求

直接上代码:

url = 'https://movie.douban.com/chart'    #豆瓣排行榜的网址

#设置请求头
hd = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.62'

#生成get请求
r = requests.get(url,headers=hd)

#获取元素面板文本
text = r.content.decode('utf-8')
#content 二进制
#decode 编码格式('utf-8','gbk')一般都是这两种
'''这两行代码等价于上行
r.encoding = 'utf-8'
text = r.text
'''
print(text)

输出结果
在这里插入图片描述

get 方法是可以向服务器发送信息的,除了可以请求需要的页面(url)之外,也可以发送我们指定的内容


headers参数(字典):模拟浏览器登录,User-Agent:用户代理、Cookie:做用户访问状态的保持,用在用户登录

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
    'Cookie': '_octooz7h3ni%2FGlaRFR3ETrDvuhKiiUgJP8jStjNLNiFfpvWQy7U10IGCY15XhHxudYu3tRlt%2Fawt4SHEaDct0LNUQ%2B%2Fi2rHiCLVsL1Y8w%2BC9HpTtd2S6gxDLzfHK5dvBPc4TB6WDn%2BaRt9ljs4lSdlT0mn--qas9T0w68J9araMi--Se2WerqwQ6PlXV5xa2W9lw%3D%3D'
 }

cookies可以在Network面板中获取


cookies参数
示例:

cookie = {
    '__cfduid':"d3dbaf9b94d0d23daa6b3cb26cf79242c1621331340",
    '__yjs_duid':"1_ad976dbfb5297c53ae1f2b995a9fe7371620895017180",
    'Hm_lpvt_2c6cc9163dcd6f496c48a6b8ac043309':"1621336831",
    'Hm_lvt_2c6cc9163dcd6f496c48a6b8ac043309':"1621316608,1621336294,1621336595,1621336821",
    'PHPSESSID':"k39e67jndp98visgouhvclrb77",
    'trennlastsearchtime':"1621331611",
    'trennmlauth':"a45766ed6525d97dae8c035f3fd05ef8",
    'trennmlgroupid':"3",
    'trennmlrnd':"CCL36aDXfcQqN7D5X5kn",
    'trennmluserid':"13977",
    'trennmlusername':"LZT"}
#对于cookie获取必须先登录才会有
re = requests.get("https://www.4kbizhi.com/wallpaper/7433-original.html",cookies=cookie)
#这样可以用户登录访问网址

params 参数(字典):添加在网址url后面,常用在模拟搜索

import requests
url = 'https://www.baidu.com/s'    #最后有个 s,这个才是搜索的网址
hd = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.62'
}
params = {
    'wd': '明日方舟'
}

re = requests.get(url,params=params,headers=hd)
print(re.url)

结果:

https://www.baidu.com/s?wd=%E6%98%8E%E6%97%A5%E6%96%B9%E8%88%9F

这是编码后的结果,节码后就是:

https://www.baidu.com/s?wd=明日方舟

timeout参数(小数):
为避免因等待服务器响应时间过长造成程序永久失去响应,超过参数值(该时间)后程序讲自动停止等待


proxies(代理参数):

定义: 代替你原来的IP地址去对接网络的IP地址。
作用: 隐藏自身真实IP,避免被封
语法结构
  	proxies = {
      	'协议':['协议://]IP:端口号'
  	}
例:
proxies = {
    'http':'112.85.164.220'
    'http':'http://112.85.164.220:9999',
    'https':'https://112.85.164.220:9999'
}

当然了这些网页里提供的代理IP大多数因为用的人太多了不能用,比如西刺代理里面的ip,用爬虫爬了1000多个下来能用的居然只有80多个,过两天一个又有好多不行了,一般大一些公司会给你提供专门的资金去购买代理IP,如果没有的话就好好的积累积累自己的IP池吧


verify(SSL证书认证参数)

适用网站: https类型网站但是没有经过 证书认证机构 认证的网站
适用场景: 抛出 SSLError 异常则考虑使用此参数
verify=True(默认)   : 检查证书认证
verify=False(常用): 忽略证书认证

一般这个不用管


auth(Web客户端验证参数)
1、针对于需要web客户端用户名密码认证的网站
2、auth = (‘username’,‘password’)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值