一、Cookie
cookie作用:服务器使用cookie来记录客户端的状态信息
实现流程:
- 执行登陆操作(获取cookie)
- 在发起个人主页请求时,需要将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)
二、代理
代理:第三方代替本体执行相关事务
什么要使用代理:
- 反爬操作。
- 反反爬手段
分类:
- 正向代理:代理客户端获取数据(爬虫使用正向代理)
- 反向代理:代替服务端提供数据
免费代理IP提供商:
- www.goubanjia.com
- 快代理
- 西祠代理
注意:我们请求网站的使用的协议和代理使用的协议要保证一致,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)