爬虫之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':'',
'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)
爬虫之request模块高级的更多相关文章
- 03、request 模块高级
requests高级部分 代理 cookie 验证码的识别 模拟登陆 代理 代理概念:代理服务器. 作用:接受请求==>请求转发. 代理和爬虫之间的关联: 可以使用请求转发的机制使得目的服务器接 ...
- 爬虫与request模块
一.爬虫简介 1.介绍 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁. ...
- 【nodejs】理想论坛帖子下载爬虫1.07 使用request模块后稳定多了
在1.06版本时,访问网页采用的时http.request,但调用次数多以后就问题来了. 寻找别的方案时看到了https://cnodejs.org/topic/53142ef833dbcb076d0 ...
- 爬虫之urllib包以及request模块和parse模块
urllib简介 简介 Python3中将python2.7的urllib和urllib2两个包合并成了一个urllib库 Python3中,urllib库包含有四个模块: urllib.reques ...
- 爬虫开发.2urllib模块
一.urllib库 概念:urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urll ...
- python3中urllib库的request模块详解
刚刚接触爬虫,基础的东西得时时回顾才行,这么全面的帖子无论如何也得厚着脸皮转过来啊! 原帖地址:https://www.2cto.com/kf/201801/714859.html 什么是 Urlli ...
- asynicio模块以及爬虫应用asynicio模块(高性能爬虫)
一.背景知识 爬虫的本质就是一个socket客户端与服务端的通信过程,如果我们有多个url待爬取,只用一个线程且采用串行的方式执行,那只能等待爬取一个结束后才能继续下一个,效率会非常低. 需要强调的是 ...
- 第三百二十六节,web爬虫,scrapy模块,解决重复ur——自动递归url
第三百二十六节,web爬虫,scrapy模块,解决重复url——自动递归url 一般抓取过的url不重复抓取,那么就需要记录url,判断当前URL如果在记录里说明已经抓取过了,如果不存在说明没抓取过 ...
- 第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签
第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签 标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需 ...
随机推荐
- sql 2008 远程过程调用失败 0x800706be
啊哦,SQL Server挂了!sql 2008 远程过程调用失败 0x800706be,找了一下解决方案,如下: 1.打开控制面板->添加删除程序 2.卸载一个叫Microsoft SQL S ...
- Jmeter入门19 保存测试结果(或从文件读取结果)
以聚合报告为例,其他监听器有write results to file的类似. 首先 为了避免每次保存的测试报告被覆盖,我们在testplan下添加两个参数:项目名和当前时间(毫秒级) 其次 添加聚合 ...
- Jmeter入门10 jmeter加密串处理方式2:BeanShell PreProcessor
上一个博客讲了方式一:函数助手__digest加密,BeanShell PreProcessor也可以用java代码进行处理 线程组.参数.请求都直接使用上一个博客的. 第一步 添加BeanShell ...
- 日期的压缩存储daybits
问题: 存储一个日期的序列,例如保存用户一年的登录时间序列,20140201,20130102这样两个日期,如果用INT那么需要八个字节,用STRING就更多了. 解决: 通过bit来存储一天,具体的 ...
- websocket常见错误
当websockt连接是open的时候send()方法传送数据,当连接关闭或获取不到的时候回抛出异常. 一个通常的错误是人们喜欢在连接open之前发送消息.如下所示: // 这将不会工作 var ws ...
- IOS6 的特性 及 autoalyout的作用
1.如果控件有默认的内容(宽高), 我们只需设置autoalyout的X/Y, autolayout会自动计算出宽高 2.Xcode6将Storyboard变成豆腐干的目的:在Xcode6之前, 如果 ...
- 函子(Monad)新解:函子定义了一个类型(泛型)和建立在这个类型上的一组运算符
这组运算符和代数中的运算加减乘除运算符一样,符合一定的定律:结合律.(交换律)等: 函数式编程的核心(底层支持)就是这些类型和运算符的定义. 函子就是定义这些类型和运算符的(). 运算符通常为单目运算 ...
- 关于message pack as3 版本的一些修改。
玩个人项目的时候,根据前辈的推荐开始用messagepack,分别是py版和as3版: 然后在github上找到了demonsters的as3模块,于是颠屁颠屁地拿来用了,用的时候发现了一些小地方过不 ...
- Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift(BN)
internal covariate shift(ics):训练深度神经网络是复杂的,因为在训练过程中,每层的输入分布会随着之前层的参数变化而发生变化.所以训练需要更小的学习速度和careful参数初 ...
- 运lucky
运 [问题背景] zhx 和妹子们玩数数游戏. [问题描述] 仅包含 4 或7 的数被称为幸运数. 一个序列的子序列被定义为从序列中删去若干个数, 剩下的数组成的新序列. 两个子序列被定义为不同的当且 ...