Py学习  »  Python

Python选择带有请求的下拉值

yarin Cohen • 4 年前 • 285 次点击  

你好,我有一个简单的html选择选项:

<select name="dnn$ctr6707$TimeTableView$ClassesList" id="dnn_ctr6707_TimeTableView_ClassesList" class="HeaderClasses">

<option selected="selected" value="14">ז1ש</option>

<option value="15">ז2ש</option>

<option value="16">ז3ש</option>

<option value="17">ז4ש</option>

<option value="49">ז5ש</option>

<option value="60">ז6ש</option>

<option value="24">ז7ש</option>

<option value="1">ז8ד</option>

<option value="2">ז9ד</option>

<option value="3">ז10ד</option>

<option value="4">ז11ד</option>

<option value="5">ח1ד</option>

<option value="6">ח2ד</option>

<option value="7">ח3ד</option>

<option value="8">ח4ד</option>

<option value="999">ח5ד</option>

<option value="18">ח6ש</option>

<option value="19">ח7ש</option>

<option value="20">ח8ש</option>

 </select></td>

获取请求 类表的值不会改变,它保持在14。 如果您想尝试以下操作,这是网站: http://tikah.iscool.co.il/default.aspx 如果你能提供给我的get请求,改变值或解释(更好的代码),我将不胜感激! 谢谢!

def main():
    dat = {
        '__EVENTTARGET': 'dnn_ctr6707_TimeTableView_TdChangesTable',
        '__VIEWSTATEGENERATOR': 'CA0B0334',
        'dnn$ctr6707$TimeTableView$ClassesList': 42,
        'dnn$ctr6707$TimeTableView$ControlId': 2
    }
    responde = requests.get('http://tikah.iscool.co.il/default.aspx', data=dat)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53096
 
285 次点击  
文章 [ 1 ]  |  最新文章 4 年前
SuperStew
Reply   •   1 楼
SuperStew    5 年前

这给了我200的状态码,所以我想你可以从那里得到任何你需要的信息。

import requests
from bs4 import BeautifulSoup as bs



url=r'http://tikah.iscool.co.il/default.aspx'

s=requests.Session()
r=s.get(url)


soup=bs(r.text,'html.parser')

dataload={
    '__EVENTTARGET': 'dnn$ctr6707$TimeTableView$ClassesList',
    '__EVENTARGUMENT': '',
    '__LASTFOCUS': '',
    '__VIEWSTATE': soup.find('input',{'id':'__VIEWSTATE'}).attrs['value'],
    '__VIEWSTATEGENERATOR': soup.find('input',{'id':'__VIEWSTATEGENERATOR'}).attrs['value'],
    'dnn$ctr6707$TimeTableView$ClassesList': '42',
    'dnn$ctr6707$TimeTableView$ControlId': '',
    'ScrollTop':'' ,
    '__dnnVariable': ''
}



headers={
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'en-US,en;q=0.9',
    'cache-control': 'max-age=0',
    'content-length': '3278',
    'Host': 'tikah.iscool.co.il',
    'Origin': 'http://tikah.iscool.co.il',
    'Referer': 'http://tikah.iscool.co.il/default.aspx',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36'

}

r=s.post(r.url,headers=headers,data=dataload)
print(r.status_code)

说明:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUIMjU3MTQzOTcPZBYGZg8WAh4EVGV4dAU+PCF........

所以这只是一个使用BeautifulSoup解析“value”属性并将其放入 dataload here