Python网络爬虫及自动化--获取页面cookie、headers

14 篇文章 2 订阅
订阅专栏

一、Selenium库webdirver类

1、获取cookie,driver.get_cookies()

报错信息:

说明是驱动问题, 驱动和浏览器不匹配,且提示不要用64位ie驱动ie10or11,即使是在64位的电脑上。

IE驱动包下载地址:

https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver

下载替换IEDriverServer.exe,ok!

然后将获取的cookies转换:

cookie = [item["name"] + "=" + item["value"] for item in cookies ]
cookiestr = ';'.join(item for item in cookie)
headers_cookie ={
           "Cookie": cookiestr         # 通过接口请求时需要cookies等信息
}
response = requests.post(url, data=body, headers=headers_cookie)

这样就可以在做UI自动化的时候,通过接口获取到数据来进行相关测试。

获取包含选中元素的HTML:get_attribute('outerHTML')

获取元素内的全部HTML:get_attribute('innerHTML')

获取元素标签的内容:get_attribute(‘textContent’)

元素没找到返回<class 'NoneType'>

2、获取请求headers,

# 获取请求头信息
agent = driver.execute_script("return navigator.userAgent")
print(agent) # 查看请求头是否更改。

注意:由于IE浏览器安全设置,driver.page_source为空,By.ID等无法定位元素

改用FireFox,使用driver.find_element定位元素需要等待页面加载结束,使用time.sleep(2)等待

from selenium import webdriver  #导入驱动模块
from selenium.webdriver.common.by import By
import time

driver =webdriver.Firefox()       #创建相应浏览器驱动对象
driver.get("https://passport.neea.edu.cn/NCRELogin?ReturnUrl=https://ncre-bm.neea.cn/Home/VerifyPassport/?LoginType=0|61&Safe=1")  #使用驱动对象打开网站
'''
cookie=driver.get_cookies()
print(cookie)
# 获取请求头信息 
agent = driver.execute_script("return navigator.userAgent") 
print(agent) # 查看请求头是否更改。
driver.page_source.encode("utf-8") 
s=driver.page_source
print(s)
'''
#time.sleep(3)
driver.find_element(By.NAME,"txtUserName").send_keys("xx")#姓名
pw = driver.find_element(By.ID,"txtPassword")#.send_keys("yy")#姓名
#driver.find_element(By.LINK_TEXT,"在线报名")click()
print(pw.get_attribute("outerHTML"))
input('stop')
#driver.save_screenshot('1.png')

二、requests库

1、安装requests库:python -m pip install requests

response =  requests.get(url)  

response.encoding="utf-8" #注意: get后,必须使用encoding指定正确页面编码,否则为乱码

requests默认是keep-alive的,可能没有释放,加参数 headers={'Connection':'close'}

response的常用方法.

response.text:url响应的网页内容,字符串形式

response.content:url响应网页内容(二进制形式)

response.status_code:http请求的返回状态,200就是访问成功,404则失败

判断请求是否成功

assert response.status_code==200

如果是200,不会有任何反应

如果不是200,则报错

2、获取headers

response.headers #获取响应头

response.request.headers #获取请求头

这是默认请求头

当你用默认请求头去访问百度网站,只会返回一小段的内容,而用浏览器去访问,就有非常多的内容。因为服务器识别出默认的请求头不是一个正常的浏览器,所以只会返回一点。

F12打开开发人员工具,复制User-Agent值。

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

使用方法:requests.get(url,headers=headers)

p={“wd”:“python”}
使用方法:request.get(url,params=p,headers=headers}

3、获取和处理cookie

response.cookies #获取cookies,为RequestsCookieJar数据类型

cookie = response.cookies.get_dict() #将cookies转为字典

requests.utils.dict_from_cookiejar(response.cookies) #将RequestsCookieJar类型的cookies转换成字典

4、常见错误

未指定请求头,报错:

未指定页面编码,显示乱码:

可以使用正则根据页面charset自动设置页面编码

import requests
import re

url = 'https://www.ip138.com/post/'
headers = { 
    #"Content-Type": "application/json",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" 
} 
res = requests.get(url,headers=headers)
#根据页面charset设置编码
regex = re.compile(r'<meta.*charset=[\'"]?([\w-]+)[\'"]?',re.I)
charset = regex.findall(res.text)
res.encoding = charset[0] if len(charset)>0 else "utf-8"
print(res.text)

5、Session方式访问

import requests
import re

url = 'https://www.ip138.com/post/'
headers = { 
    #"Content-Type": "application/json",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" 
} 

session = requests.Session()
payload = {'areacode':'P610481000000','username':'P610481000000','password':'xxxxxx','code':'4087'}
res = session.post('http://10.5.92.120:9080/pis/doLogin.html', data=payload)
#根据页面charset设置编码
regex = re.compile(r'<meta.*charset=[\'"]?([\w-]+)[\'"]?',re.I)
charset = regex.findall(res.text)
res.encoding = charset[0] if len(charset)>0 else "utf-8"
print(res.cookies.get_dict())
res = session.get("http://10.5.92.120:9080/pis/errorDataInit.html")
print(res.text)

其中验证码未进行识别,需要人工确认。

 

Python接口自动化cookie、session应用
weixin_42485712的博客
04-15 1010
——————·今天距2021年260天·——————这是ITester软件测试小栈第112次推文在上一篇Python接口自动化测试系列文章:Python接口自动化-requests模块之...
python提取浏览器Cookie
weixin_34293059的博客
09-29 1269
在用浏览器进行网页访问时,会向网页所在的服务器发送http协议的GET或者POST等请求,在请求中除了指定所请求的方法以及URI之外,后面还跟随着一段Request Header。Request Header的内容主要用于描述本地信息,如所用的浏览器、所用的系统、语言、所能接受的返回数据的编码格式等,其中有一个非常重要的Header项就是CookieCookie可以说是网站的自定义数据集。由于服...
Python爬虫技术 第12节 设置headers和cookies
最新发布
hummhumm的专栏
07-24 1909
在使用Python进行网络爬虫开发时,经常需要模拟浏览器行为,这包括设置请求头(headers)和处理cookies。下面我将详细介绍如何在Python中使用requests库来设置headers和处理cookies。
Python网络爬虫获取cookie的方法
热门推荐
黎明总是如期而至
08-22 3万+
【代码】【Python网络爬虫获取cookie的方法。
Python爬虫Cookie的使用
qq_43096786的博客
11-03 1267
1.获取cookie保存到变量 import urllib.request import http.cookiejar # 声明一个CookieJar对象实例来保存cookie cookie = http.cookiejar.CookieJar() # 利用urllib库中的 HTTPCookieProcessor 对象来创建cookie处理器 handle = urllib.request.HTTPCookieProcessor(cookie) # 通过handle来构建opener opener = u
Python获取cookie
Dove言和
06-28 731
Python3的使用方法 # python3.6环境 from urllib import request from http import cookiejar if __name__ == '__main__': # 声明一个CookieJar对象实例来保存cookie cookie = cookiejar.CookieJar() # 利用urllib.reque...
python爬虫系列Day03--url传参_爬虫url问号后面的参数
2401_84520118的博客
04-21 1347
💎 💎 💎今天为大家介绍爬虫的url传参啦!!!这是爬虫的第三讲咯!!!🚀 🚀 🚀如果你看完感觉对你有帮助,,,欢迎给个三连哦💗!!!您的支持是我创作的动力。!!😘😘😘案例有需要的可以私我获取哦 🥰🥰🥰本文到这里就结束啦👍👍👍,如果有帮到你欢迎给个三连支持一下哦❤️ ❤️ ❤️文章中有哪些不足需要修改的地方欢迎指正啦!!!让我们一起加油👏👏👏⭕⭕⭕最最最后还是要提示一下啦!!!!!🔺🔺🔺。
Python网络爬虫与数据采集.pdf
08-14
网络爬虫是一种自动获取网页内容的程序,可以用于搜索引擎、数据分析、新闻聚合等多种场景。网络爬虫的分类多样,按照执行方式可以分为聚焦爬虫、通用爬虫等;按照技术架构可以分为分布式爬虫和单机爬虫网络爬虫的...
网页爬虫cookie自动获取及过期自动更新的实现方法
01-21
本文实现cookie的自动获取,及cookie过期自动更新。 社交网站中的很多信息需要登录才能获取到,以微博为例,不登录账号,只能看到大V的前十条微博。保持登录状态,必须要用到Cookie。以登录www.weibo.cn 为例: 在...
Python网络爬虫入门篇---小白必看
XIe_0928的博客
01-25 1908
1. 预备知识 学习者需要预先掌握Python的数字类型、字符串类型、分支、循环、函数、列表类型、字典类型、文件和第三方库使用等概念和编程方法。 2. Python爬虫基本流程 a. 发送请求 使用http库向目标站点发起请求,即发送一个Request,Request包含:请求头、请求体等。 Request模块缺陷:不能执行JS 和CSS 代码。 b. 获取响应内容 如果requests的内容存在于目标服务器上,那么服务器会返回请求内容。 Response包含:html、Json字符..
python网络爬虫的基本步骤-Python网络爬虫学习手记(1)——爬虫基础
weixin_37988176的博客
11-01 2276
1、爬虫基本概念网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。--------百度百科简单的说,爬虫就是获取目标网页源代码,并提取和保存网页信息的自动化程序或者脚本。网络爬虫脚本或者程序一般包含如下几个步骤:A.获取网页源代码爬虫首要的任务就是获取需要爬取的目标网页,也就是网页源代码,一般网页源代码就...
Python-pycookiecheat从浏览器的已验证会话中获取Cookie以便在Python脚本中使用
08-10
pycookiecheat:从浏览器的已验证会话中获取Cookie,以便在Python脚本中使用
通过python获取浏览器cookie
weixin_48304192的博客
02-09 2081
https://github.com/borisbabic/browser_cookie3
python cookie获取
weixin_39699362的博客
12-31 567
from bs4 import BeautifulSoup from urllib import request, parse from http import cookiejar # 创建cookie实例 cookie = cookiejar.CookieJar() # 创建handler cookie_handler = request.HTTPCookieProcessor(cookie...
python 爬虫(cookie)
sonflower123的博客
05-13 4208
cookie和session区别 cookie数据存放在客户浏览器上,session数据放在服务器上 cookie不是很安全,别人可以分析放在本地的cookie并进行cookie欺骗 session会在一定时间上保存在服务器。当访问增多,会比较占用服务器的性能。 单个cookie保存的数据不能超过4K,很多浏览器限制到一个站点最多保存20个cookie 爬虫处理cookie和session 带上cookie、session的优点: 能够请求到登录后页面 带上cookie、session的弊端:
python 获取cookie的方法
花生日记
05-11 9873
获取 Cookie,需要使用一个 Python模块: 在获取 Cookie之前,需要先进行一些准备工作: ①首先需要在 Web服务器上安装 pygame. content ()函数 ②然后将 pygame. content ()函数连接到一个远程的服务器,该服务器位于一个虚拟主机中 ③然后将 cookie参数传递给这个虚拟主机的 pygame. content ()函数,并设置参数的范围(即是否要获取网站上所有的 Cookie)。在服务器上,请求的对象是 Cookie,而响应的对象是用户的账号和密码。
Python爬虫_Cookie
苦涩
10-20 905
文章目录Cookie状态管理Cookie处理 Cookie状态管理 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理 Cookie和Session都用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决HTTP无状态的问题...
python爬虫模块取cookie_[ Python爬虫实战 ] Python使用cookies - pytorch中文网
weixin_39922868的博客
12-06 190
一、Cookie登录简介Cookie是一种服务器发送给浏览器的一组数据,用于浏览器跟踪用户,并访问服务器时保持登录状态等功能。基本所有的网站,我们都可以通过操作Cookie来进行模拟登录,所以我们只要通过灵活的操作Cookie就可以实现登录!二、为什么要登录在很多时候,一些网站要求我们登录之后才能访问或者我们需要通过爬虫抓取我们的个人信息,比如当前一些查询公积金和社保的APP等。他们都可以根据用户...
python (1) 获取cookie和使用cookie
weixin_42221654的博客
11-10 2936
使用requests.utils.dict_from_cookiejar()把返回的cookies转换成字典
python网络爬虫获取cookie
07-28
要在Python中使用网络爬虫获取cookie,你可以使用requests库。以下是一个简单的示例代码: ```python import requests # 发起请求 response = requests.get('https://www.example.com') # 获取cookie cookie = response.cookies.get_dict() print(cookie) ``` 这段代码发送一个GET请求到'https://www.example.com',然后使用`response.cookies.get_dict()`方法获取到响应的cookie,并将其打印出来。你可以根据需要对cookie进行进一步处理和使用。 请注意,获取cookie时,你可能需要在请求头中设置一些额外信息,例如User-Agent等。这取决于你要爬取的网站的要求。你可以使用requests库的`headers`参数来设置请求头。 ```python import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get('https://www.example.com', headers=headers) cookie = response.cookies.get_dict() print(cookie) ``` 记得根据需要修改`User-Agent`的值。这是一个常见的请求头字段,用于模拟浏览器发送请求。
写文章

热门文章

  • Python网络爬虫及自动化--获取页面cookie、headers 5807
  • JAVA笔记五:继承 3970
  • VSCode 配置c/c++、python环境 3478
  • Python笔记一:经典例题田字格,计算π值,猜数游戏 3060
  • Python笔记八:PIL库的使用 2928

分类专栏

  • yolov4 2篇
  • Java Web 7篇
  • 前端开发 6篇
  • 51 3篇
  • 算法 1篇
  • TamperMonkey脚本 1篇
  • Java 15篇
  • 数据结构学习笔记 4篇
  • Python学习笔记 14篇

最新评论

  • IDEA编译安卓源码TVBox(1)

    夜里的游魂: xwalk_shared_library-23.53.589.4.pom 在哪下载啊

  • Python笔记一:经典例题田字格,计算π值,猜数游戏

    昂704: {0:-^{1}}把scale代里面就是{0:—∧scale},就是把format里面第一个“+”居中再填充的意思

  • IDEA编译安卓源码TVBox(2)

    Alan666156: 请问一下,这个测试包能直接在电视或者投影仪上面安装吗?我在我家投影仪安装,提示当前安装包仅用于测试,无法安装;电脑模拟器是可以安装正常使用的

  • IDEA编译安卓源码TVBox(1)

    普通网友: 支持一下!我也写了一篇获取【大厂面试真题解析、核心开发学习笔记、最新全套讲解视频、实战项目源码讲义、学习路线简历模板】的文章

  • Python网络爬虫及自动化——核酸查询并截图

    susu雪饼: 求求急用

最新文章

  • IDEA编译安卓源码TVBox(2)
  • IDEA编译安卓源码TVBox(1)
  • 笔记本hp6930p安装Android-x86补记
2024年5篇
2023年28篇
2022年28篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家内蒙古玻璃钢雕塑灯厂家三明玻璃钢造型雕塑价格表湖南附近玻璃钢雕塑承德景观玻璃钢雕塑梅州玻璃钢动物雕塑手工制作上海 玻璃钢雕塑山东抽象玻璃钢雕塑多少钱重庆玻璃钢卡通雕塑图片北京玻璃钢雕塑制作费用辽宁玻璃钢动物雕塑厂莆田玻璃钢雕塑凳子北京玻璃钢卡通雕塑厂家商场美陈購買定做校园玻璃钢雕塑厂家鹰潭玻璃钢雕塑设计玻璃钢雕塑和树脂工艺品的区别大型玻璃钢雕塑销售厂家杏坛玻璃钢人物雕塑点击咨询丹东厂家供应沈阳玻璃钢花盆绍兴定制玻璃钢雕塑焦作公园玻璃钢彩绘雕塑连云港卡通玻璃钢雕塑上海户内玻璃钢雕塑销售厂家江苏开业商场美陈采购白山玻璃钢雕塑人物玻璃钢花盆可信赖广东玻璃钢金属雕塑设计乐山玻璃钢花盆北京拿罐女神玻璃钢雕塑深圳户内玻璃钢雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化