【python百度智能云】:Python — 三种获取__VIEWSTATE、__VIEWSTATEGENERATOR、__EVENTVALIDATION方法。

本文介绍使用Python通过正则表达式、XPath及BeautifulSoup三种方法获取网页中的__VIEWSTATE、__VIEWSTATEGENERATOR和__EVENTVALIDATION值,适用于表单提交等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

学习目标:

       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方法如何获取请大家自行百度,有很多大牛写的挺不错!正则表达式也是!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值