【python百度智能云】:Python — 三种获取__VIEWSTATE、__VIEWSTATEGENERATOR、__EVENTVALIDATION方法。
2023-09-11 14:21:44 时间
学习目标:
Python 获取获取__VIEWSTATE、__VIEWSTATEGENERATOR、__EVENTVALIDATION;相信很多python做CFC 函数调用、云函数、提交Form表单的时候,获取打开网页的三个值,并且提交表单.......有各种情况会使用到,这次我们总结三种常见方法,仅供参考!也欢迎大家一起讨论交流。
第一种方法:正则表达式解决(正则表达式:正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。)
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。re 模块使 Python 语言拥有全部的正则表达式功能。
# 正则表达式解决
def get_VIEWSTATE(r):
pattern1=r'VIEWSTATE\".*value=\".*\"'
match=re.search(pattern1, r).group(0)
pattern2 = r'VIEWSTATE\" id=\"__VIEWSTATE\" value=\"'
match1 = re.split(pattern2, match)
return match1[1][:-1] # 返回_VIEWSTATE
def get_EVENTVALIDATION(r):
pattern1 = r'EVENTVALIDATION\".*value=\".*\"'
match = re.search(pattern1, r).group(0)
pattern2 = r'EVENTVALIDATION\" id=\"__EVENTVALIDATION\" value=\"'
match1 = re.split(pattern2, match)
return match1[1][:-1] # 返回_EVENTVALIDATION
def get_VIEWSTATEGENERATOR(r):
pattern1 = r'VIEWSTATEGENERATOR\".*value=\".*\"'
match = re.search(pattern1, r).group(0)
pattern2 = r'VIEWSTATEGENERATOR\" id=\"__VIEWSTATEGENERATOR\" value=\"'
match1 = re.split(pattern2, match)
return match1[1][:-1] # 返回_EVENTVALIDATION
login_url #指的是网页超链接
html_yiban = session.get(login_url)
VIEWSTATE = get_VIEWSTATE(html_yiban.text)
VIEWSTATEGENERATOR = get_VIEWSTATEGENERATOR(html_yiban.text)
EVENTVALIDATION = get_EVENTVALIDATION(html_yiban.text)
print(VIEWSTATEGENERATOR)
第二种方法:xpath方法解决(xpath:XPath,即 XML 路径语言,它是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历)
- XPath 使用路径表达式在 XML 文档中进行导航
- XPath 包含一个标准函数库
- XPath 是 XSLT 中的主要元素
# xpath方法解决
from lxml import etree
login_url #指的是网页超链接
html = etree.parse(login_url, etree.HTMLParser())
VIEWSTATE = html.xpath("//input[@id='__VIEWSTATE']/@value")
VIEWSTATEGENERATOR = html.xpath("//input[@id='__VIEWSTATEGENERATOR']/@value")
print(VIEWSTATEGENERATOR)
EVENTVALIDATION = html.xpath("//input[@id='__EVENTVALIDATION']/@value")
第三种方法:BeautifulSoup方法解决(BeautifulSoup方法:提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。)
Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。
# BeautifulSoup方法解决
from bs4 import BeautifulSoup
login_url #指的是网页超链接
html_yiban = session.get(login_url).content
bsObj = BeautifulSoup(html_yiban, "html.parser")
VIEWSTATE = bsObj.find('input', {'id': '__VIEWSTATE'}).attrs['value']
VIEWSTATEGENERATOR = bsObj.find('input', {'id': '__VIEWSTATEGENERATOR'}).attrs['value']
print(VIEWSTATEGENERATOR)
EVENTVALIDATION = bsObj.find('input', {'id': '__EVENTVALIDATION'}).attrs['value']
总结
以上方法亲测有效,具体需要大家自己摸索一下,根据自己获取的网页代码从而进行更改,xpath方法如何获取请大家自行百度,有很多大牛写的挺不错!正则表达式也是!
相关文章
- Python脚本扫描给定网段的MAC地址表(scapy或 python-nmap)
- 如何用Python下载百度指数的数据
- Word处理控件Aspose.Words功能演示:在 Python 中将 Markdown 转换为 PDF
- Google Earth Engine(python)——用 Python 修复影像栅格的接缝
- 【零基础学python】:清华官方出品的《看漫画学Python》全彩PDF,495页资源分享
- 掌握Python语言能做什么?python对小白友好吗?
- 如何快速学习python,学好python?能通过Python赚到的第一笔钱,有哪些经验可以分享吗?
- 请问Python零基础学会可以做哪些?python是不是很难学?
- 134 python高级 - 正则表达式(表示数量)
- 107 python高级 - 模块进阶
- gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- Python保存json文件并格式化
- 《NLTK基础教程——用NLTK和Python库构建机器学习应用》——第2章 文本的歧义及其清理
- Python数据处理Tips数据缺失值的8种常用处理方法和可视化
- 在学习Django之前应该学习多少Python?
- python 项目自动生成requirements.txt文件
- Linux—yum的python版本错误——初级解决方案
- Python 常见问题 之 python 安装包下载安装速度慢 的 快速解决方法(之一)
- Python类的定义、方法和属性使用
- [Python]2分钟完成python + Selenium Web端自动化环境搭建,开启~~~
- Python编程基础:实验6——函数的递归