requests模块高级使用

编辑本随笔

一、Cookie

 cookie作用:服务器使用cookie来记录客户端的状态信息

实现流程:

  1. 执行登陆操作(获取cookie)
  2. 在发起个人主页请求时,需要将cookie携带到该请求中

注意:session对象,也可以发送请求,如果服务器端会给客户端返回cookie,session对象自动将cookie进行存储

import requests

#创建session对象
session = requests.session()

#创建headlers
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
}

#指定login对应url
login_url = "https://accounts.douban.com/j/mobile/login/basic"

#封装登陆相关数据
data = {
    "ck": "",
    "name": "17502368221",
    "password": "cv@125436",
    "remember": "true",
    "ticket": ""
}

#使用session发起登陆请求,将cookie获取且存储到session当中
login_response=session.post(url=login_url,data=data,headers=headers)

#使用session对个人主页发起请求,获取响应页面数据
home_url="https://www.douban.com/people/191728538/"

response=session.get(url=home_url,headers=headers)

page_text=response.text

with open("./doubanHomePage.html",'w',encoding="utf-8") as fp:
    fp.write(page_text)

二、代理

代理:第三方代替本体执行相关事务

什么要使用代理:

  1. 反爬操作。
  2. 反反爬手段

分类:

  1. 正向代理:代理客户端获取数据(爬虫使用正向代理)
  2. 反向代理:代替服务端提供数据

免费代理IP提供商:

  1. www.goubanjia.com
  2. 快代理
  3. 西祠代理

注意:我们请求网站的使用的协议和代理使用的协议要保证一致,http或者https

import requests

url = 'http://www.baidu.com/s?wd=ip&ie=utf-8'

#将代理IP封装到一个字典中
proxy={
    "http":"195.208.172.70:8080"
}

#构建headers
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
}

#在请求之前更换网络IP
response=requests.get(url=url,headers=headers,proxies=proxy)

#数据持久化
page_text=response.text
with open("./代理.html",'w',encoding='utf-8') as fp:
    fp.write(page_text)

猜你喜欢

转载自www.cnblogs.com/yaya625202/p/10375817.html