好吧,实际上该网站正在生成一个重定向CloudFlare
,然后通过动态加载JavaScript
一旦页面加载,因此我们可以使用多种方法,例如selenium
and requests_html
但我会为您提到最快的解决方案,因为我们将呈现JS
在飞行中:)
import cloudscraper
from bs4 import BeautifulSoup
scraper = cloudscraper.create_scraper()
html = scraper.get("https://www.trackcorona.live/").text
soup = BeautifulSoup(html, 'html.parser')
confirmed = soup.find("a", id="valueTot").text
print(confirmed)
Output:
110981
提示503
response code
:
基本上该代码指的是service unavailable
.
更技术地说,GET
无法满足您发送的请求。原因是因为请求被困在receiver
的请求是https://www.trackcorona.live/ https://www.trackcorona.live/它在哪里将其处理到同一个源上的另一个源HOST
这是https://www.trackcorona.live/?cf_chl_jschl_tk= https://www.trackcorona.live/?__cf_chl_jschl_tk__=
Where __cf_chl_jschl_tk__=
正在持有一个token
进行身份验证。
所以你通常应该按照你的代码来服务host
与所需的数据。
如下所示end
url:
import requests
from bs4 import BeautifulSoup
def Main():
with requests.Session() as req:
url = "https://www.trackcorona.live"
r = req.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
redirect = f"{url}{soup.find('form', id='challenge-form').get('action')}"
print(redirect)
Main()
Output:
https://www.trackcorona.live/?__cf_chl_jschl_tk__=575fd56c234f0804bd8c87699cb666f0e7a1a114-1583762269-0-AYhCh90kwsOry_PAJXNLA0j6lDm0RazZpssum94DJw013Z4EvguHAyhBvcbhRvNFWERtJ6uDUC5gOG6r64TOrAcqEIni_-z1fjzj2uhEL5DvkbKwBaqMeIZkB7Ax1V8kV_EgIzBAeD2t6j7jBZ9-bsgBBX9SyQRSALSHT7eXjz8r1RjQT0SCzuSBo1xpAqktNFf-qME8HZ7fEOHAnBIhv8a0eod8mDmIBDCU2-r6NSOw49BAxDTDL57YAnmCibqdwjv8y3Yf8rYzm2bPh74SxVc
现在可以结束了URL
所以你需要通过所需的Form-Data
:
像这样的东西:
def Main():
with requests.Session() as req:
url = "https://www.trackcorona.live"
r = req.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
redirect = f"{url}{soup.find('form', id='challenge-form').get('action')}"
data = {
'r': 'none',
'jschl_vc': 'none',
'pass': 'none',
'jschl_answer': 'none'
}
r = req.post(redirect, data=data)
print(r.text)
Main()
在这里你最终会得到text
没有你想要的价值观。因为你的值是通过呈现的JS
.