我需要使用请求从网站抓取一些数据。该网站就像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)