爬虫之request模块高级
2024-09-05 15:04:52
一、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':'',
'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)
最新文章
- adobe air类app 接入腾讯开放平台移动游戏使用带tencent包名前缀的问题
- PHP框架中的日志系统
- [其他] 蒙特卡洛(Monte Carlo)模拟手把手教基于EXCEL与Crystal Ball的蒙特卡洛成本模拟过程实例:
- android开源框架
- LA 4126 Password Suspects
- eclipse关联源码 Failed to create the part's controls
- js和jq使用submit方法无法提交表单
- Redisson使用起来很方便,但是需要redis环境支持eval命令
- CF Zepto Code Rush 2014 B. Om Nom and Spiders
- ios学习笔记第四天之官方文档总结
- Struts2---OGNL表达式和EL表达式
- Java 接口基础详解
- eclipse格式化代码快捷键失效
- python 列表 元组 字符串
- ECC算法软件保护中的应用
- 【python-appium】Appium的一些坑问题错误解决 与 技巧集锦
- nn.ReLU(inplace=True)中inplace的作用
- Runtime之成员变量&;属性&;关联对象
- [LeetCode&;Python] Problem 682. Baseball Game
- 使用VBS发邮件