爬虫之request模块高级
一、cookie&session
cookie:服务器端使用cookie来记录客户端的状态信息
实现流程:
执行登陆操作(获取cookie)
在发起个人主页请求时,需要将cookie携带到该请求中
注意:session对象也可以发送请求,并且会将cookie对象进行自动存储
cookie&session演示
import requests session = requests.session() # 1. 发起登陆请求:将cookie获取,且存储到session对象中 login_url = 'https://accounts.douban.com/login' data = { 'source':'None', 'redir':'https://www.douban.com/people/141236419/', 'form_email':'18931895326', 'form_password':'lshhxr0418', 'login':'登陆', } # 自定义请求头信息 headers = { 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36' } # 使用session发起post请求 login_response = session.post(url=login_url,data=data,headers=headers) # 2. 对个人主页发起请求(session),获取响应页面数据 url = 'https://www.douban.com/people/141236419/' response = session.get(url=url,headers=headers) page_text = response.text with open('./douban110.html','w',encoding='utf-8') as fp: fp.write(page_text)
二、代理操作
-
第三方代理本体执行相关的事物。生活:代购、微商、中介
-
为什么要使用代理
-
反爬操作。
-
反反爬手段
-
-
分类
-
正向代理:代替客户端获取数据
-
反向代理:代理服务器端提供数据
-
-
免费代理ip的网站提供商
-
www.goubanjia.com (建议使用)
-
快代理
-
西祠代理
代理演示
import requests url = 'http://www.baidu.com/s?ie=utf-8&wd=ip' # 将代理ip封装到字典 # 更换网络ip proxy = { 'http':'118.27.20.17:3128' } # 自定义请求头信息 headers = { 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36' } # 更换网络IP response = requests.get(url=url,proxies=proxy,headers=headers) with open('./daili.html','w',encoding='utf-8') as fp: fp.write(response.text)