使用 python 请求提交搜索表单



我需要使用请求从网站抓取一些数据。该网站就像https://www.example.com/tele/search.php.该网站有一个如下所示的部分:

<form action="search-result.php" method="post" name="sub">
<label class="sr-only" for="usrname">Username</label>
<div class="input-group mb-3">
<div class="input-group-prepend">...</div>
<input type="text" class="form-control" name="cnnum" placeholder="322112222 or 3520211114489" aria-label="Username" aria-describedby="basic-addon1">
</div>
<br>
<button type="submit" class="btn btn-danger center-block" style="align-center ">Search</button>
</form>

所以我所做的是:

import requests
from bs4 import BeautifulSoup
S_URL = 'https://example.com/tele/search-result.php'
cnnum = '**********'
login_information = {
'cnnum': cnnum
}
response = requests.post(S_URL, data=login_information)
print(response.content)

但它不起作用并显示不可接受的错误。我是新请求,所以请帮助。我不想使用硒。我想用请求来做这件事。

我已经能够找到您引用它的网站,我确实看到您正在传递正确的POST请求方法。

您尚未共享收到的Errors。但我相信你确实对response code有问题,而不是200

因此,请注意,网站托管在防火墙保护CloudFlare,如果您发出多个POST请求,这可能会阻止您,因为这是防止浏览器自动化的任务之一。

还要考虑通过有效的User-Agent

下面是一个简单的POST请求。

import requests
data = {'cnnum': '322112222'}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0'}
r = requests.post("https://simdatabaseonline.com/tele/search.php", data=data)
print(r.text)

最新更新