首页 > 解决方案 > 如何抓取返回空表的网站?

问题描述

问题

我正在尝试抓取网站。但是,当我发布邮递员的请求时,我无法访问表格内容。我试过请求库来获取信息。我尝试使用 cloudcraper 库看起来像一个人。结果 HTML 的表格为空。我该如何解决?

截图

1 - 表格
2 - 结果

代码

import requests

url = "https://www.turkiye.gov.tr/mersin-yenisehir-belediyesi-arsa-rayic-degeri-sorgulama?submit"

payload='btn=Sorgula&caddesokak=&id=&islem=&mahalle=27&token=%7B609B03-5C5357-904654-84788D-227746-F7EEF8-F661BE-1B3F90%7D&yil=2021'
headers = {
  'sec-ch-ua': '"Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"',
  'sec-ch-ua-mobile': '?0',
  'sec-ch-ua-platform': '"Windows"',
  'Upgrade-Insecure-Requests': '1',
  'DNT': '1',
  'Content-Type': 'application/x-www-form-urlencoded',
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36',
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
  'Sec-Fetch-Site': 'same-origin',
  'Sec-Fetch-Mode': 'navigate',
  'Sec-Fetch-User': '?1',
  'Sec-Fetch-Dest': 'document',
  'Cookie': 'TURKIYESESSIONID=9a8ab4rjv7oprv5atidcmlo95i; language=tr_TR.UTF-8; TS01ee3a52=015c1cbb6d657270d7a05c71f0c60353ad5d33d8832ac14f33c8078bc783d34e5862d30b42518895fc09263e263aa5d0c8ac69356e191fa7dfed849b6029e59b84d9634c98180a76df4845df847364cfd3771e1e8c; w3p=4090734784.20480.0000'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

标签: pythonweb-scrapingpython-requests

解决方案


您遇到的问题是,邮递员和请求库不适用于 javascript,并且您尝试抓取的网站严重依赖 javascript,我亲自检查了我的浏览器,如果您在该网站中禁用 JS,它会返回一个空白页面,解决方法是selenium库,它有一个学习曲线,但它能够抓取任何这样的网站。


推荐阅读