使用python填写在线表单(下拉列表)

时间:2019-03-06 15:59:06

标签: html http python-requests

如何用python(最好是使用请求库)填写在线表单? 在网站{{3}}

共有四种形式。三个看起来差不多。 我想填写这三个之一。这是带有两个下拉菜单的表单。

<form action="http://carsalesbase.com/" class="search-form" method="get" role="search">

<input class="" id="hide-value" name="hide-value" type="hidden" value="1"/>

<select class="kelas1" id="brand-option" name="brand-option">
<option value="0">Select Brand</option>
<option value="82"> Group</option> <option value="17">Alfa Romeo</option> <option value="1">Alpina</option> <option value="249">Alpine</option> <option value="2">Aston Martin</option> <option value="67">Audi</option> <option value="68">Bentley</option> <option value="4">BMW</option> <option value="259">Borgward</option> <option value="8">Brilliance</option> <option value="69">Bugatti</option> <option value="27">Cadillac</option> <option value="75">Caterham</option> <option value="29">Chevrolet USA</option> <option value="28">Chevrolet-Daewoo</option> <option value="13">Chrysler</option> <option value="48">Citroën</option> <option value="54">Dacia</option> <option value="63">Daihatsu</option> <option value="14">Dodge</option> <option value="12">DR Motor</option> <option value="160">DS</option> <option value="18">Ferrari</option> <option value="19">Fiat</option> <option value="87">Fisker </option> <option value="24">Ford</option> <option value="33">Great Wall</option> <option value="34">Honda</option> <option value="30">Hummer</option> <option value="35">Hyundai</option> <option value="51">Infiniti</option> <option value="89">Isuzu</option> <option value="60">Jaguar</option> <option value="15">Jeep</option> <option value="36">Kia</option> <option value="3">Lada</option> <option value="70">Lamborghini</option> <option value="20">Lancia</option> <option value="23">Lancia-Chrysler</option> <option value="61">Land Rover</option> <option value="85">Landwind</option> <option value="64">Lexus</option> <option value="45">Lotus</option> <option value="83">Mahindra</option> <option value="21">Maserati</option> <option value="78">Maybach</option> <option value="40">Mazda</option> <option value="88">McLaren</option> <option value="9">Mercedes-Benz</option> <option value="41">MG</option> <option value="5">Mini</option> <option value="44">Mitsubishi</option> <option value="84">Morgan</option> <option value="52">Nissan</option> <option value="31">Opel/Vauxhall</option> <option value="47">Perodua</option> <option value="49">Peugeot</option> <option value="71">Porsche</option> <option value="46">Proton</option> <option value="91">Qoros</option> <option value="55">Renault</option> <option value="6">Rolls Royce</option> <option value="42">Rover</option> <option value="58">Saab</option> <option value="90">SAIC MG</option> <option value="72">Seat</option> <option value="73">Skoda</option> <option value="10">Smart</option> <option value="38">SSangYong</option> <option value="56">Subaru</option> <option value="57">Suzuki</option> <option value="62">Tata</option> <option value="86">Tesla</option> <option value="65">Toyota</option> <option value="74">Volkswagen</option> <option value="26">Volvo</option>
</select>
<select class="kelas1" id="model-option" name="model-option">
<option value="0">Select Model</option>
</select>
<input name="css-go" type="submit" value="Go"/>
</form>

我找不到任何好的资源来解释如何做到这一点:(

谁可以提供帮助?

谢谢!

2 个答案:

答案 0 :(得分:0)

您不能点击使用请求库中的内容,但是获取数据所能做的就是模仿提交表单后的HTTP请求。

在提交表单时,使用Chrome网络工具或Fiddler分析浏览器向服务器发送的所有请求。在this case中,当提交汽车品牌为Tesla且汽车模型为Model X的表单时,我们可以看到请求的方法,该方法为GET类型,基本URL和必需的参数。  我们可以使用此信息来模拟网页表单的提交并以这种方式获取数据:

import requests

params = {
    "hide-value": 1,
    "brand-option": 86,
    "model-option": 2129,
    "css-go": "Go"
}
html = requests.get("http://carsalesbase.com/", params=params).text
print(html)

答案 1 :(得分:0)

我将使用硒,它可以让您手动编写用户的脚本。

Here's描述了如何选择网页上的元素。

This answer说明了如何从下拉菜单中选择一个选项。