爬虫时遇到__VIEWSTATE和__EVENTVALIDATION传值并爬取分页按条件查询后的数据

在学习Python爬虫过程中,遇到一个网站需要处理__VIEWSTATE和__EVENTVALIDATION参数以进行分页和条件查询。传统的获取并填充这些参数的方法对于该特定网站无效,因为还需要传递其他四个空参数。同时,解决头信息问题,从不传到传入User-Agent和cookie,最终成功获取数据。

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

最近初学了python爬虫,在爬取一个网站时遇到了__VIEWSTATE和__EVENTVALIDATION这几个参数导致分页和按条件查询获取不到数据。网上大部分能搜到的解决方式都是先用get或者post方法请求一次,并且通过正则或者其他方式获取到页面上的这两个数据,然后带入Post请求进行传参,这种方法并没用问题,但针对我所爬取的这个网站有两个踩坑的地方。

一、第一次请求时基本是不带任何参数的,在第一次请求之后,选择分页或者条件查询时,看清此次请求时需要传的参数,网上基本上说的是第二次请求时带入__VIEWSTATE和__EVENTVALIDATION这两个值,但我实际操作爬取这个网站时,单单传入这两个值是不够的
在这里插入图片描述
除了__VIEWSTATE和__EVENTVALIDATION以及条件查询时需要传入的参数之外,空框这四个参数也需要传入,哪怕没有值也得传一个空字符串过去,不然有可能会得不到数据。

二、就是大部分爬虫时遇到的头信息的问题
先从不传头信息,到传入User-Agent,再到传入cookie,这才获取到数据。在保证参数没有问题时,可以一点一点添加头信息尝试。

下面是我爬虫代码以及运行结果
在这里插入图片描述

# coding=utf-8
import re
from pip._vendor import requests

base_url = r'http://ggzy.bengbu.gov.cn/bbfwweb/ShowInfo/MoreInfo2zfcg.aspx?CategoryNum=003002'
headers2={
   
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36'
}
r1 = requests.get(base_url, headers=headers2)
VIEWSTATE = re.findall(r'<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="(.*?)" />', r1.content,re
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值