我正试图刮取一个https://www.domeinquarantaine.nl/表,但是由于某种原因,它没有给出表的响应
#The parameters
baseURL = "https://www.domeinquarantaine.nl/tabel.php"
PARAMS = {"qdate": "2019-04-21", "pagina": "2", "order": "karakter"}
DATA = {"qdate=2019-04-21&pagina=3&order="}
HEADERS = {"Host": "www.domeinquarantaine.nl",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:65.0) Gecko/20100101 Firefox/65.0",
"Accept": "*/*",
"Accept-Language": "en-US,en;q=0.5",
"Accept-Encoding": "gzip, deflate, br",
"Referer": "https://www.domeinquarantaine.nl/",
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"X-Requested-With": "XMLHttpRequest",
"Content-Length": "41",
"Connection": "keep-alive",
"Cookie": "_ga=GA1.2.1612813080.1548179877; PHPSESSID=5694f8e2e4f0b10e53ec2b54310c02cb; _gid=GA1.2.1715527396.1555747200"}
#POST request
r = requests.post(baseURL, headers = HEADERS, data = PARAMS)
#Checking the response
r.text
答案由奇怪的记号和问号组成
所以我的问题是为什么它会回复这个回复?而如何修复它,最终以被刮掉的桌子收场呢?你知道吗
打开web浏览器,关闭JavaScript,您将看到
requests
可以得到什么。你知道吗但使用Chrome/Firefox中的
DevTools
(tabNetwork
,filterXHR
请求),您应该会看到POST请求到url https://www.domeinquarantaine.nl/tabel.php,它会用表返回HTML。你知道吗如果您在浏览器中打开此url,则会看到表-因此您可以使用get获取它,但使用POST可能可以过滤数据。你知道吗
在写了这个解释之后,我看到你已经在代码中有了这个url-你在描述中没有提到它。你知道吗
你有不同的问题-你设定了
所以服务器发送压缩响应,您应该解压缩它。你知道吗
或使用
服务器将发送未压缩的数据,您将看到带有表格的HTML
因此,有几个原因可以解释为什么你会得到你所得到的:
通过更改
data
和headers
变量并将requests.session()
添加到代码(它将自动收集和注入cookies)总之,您的代码应该如下所示:
希望这有帮助!你知道吗
相关问题 更多 >
编程相关推荐