【问题标题】:KRS ekrs.ms.gov.pl get documents from requestsKRS ekrs.ms.gov.pl 从请求中获取文件
【发布时间】:2021-04-28 12:57:36
【问题描述】:

我想在输入公司 id 0000000155 时获取有关文档的信息

我的伪代码确实知道我应该在哪里传递公司 ID。

url = "https://ekrs.ms.gov.pl/rdf/pd/search_df"

payload={}
headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0',
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
}

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

print(response.text)

【问题讨论】:

  • 我怀疑 request 能否满足您的要求。尝试使用 selenium 或类似工具获取数据
  • 我使用 selenium 执行速度很慢。

标签: python-3.x web-scraping python-requests


【解决方案1】:

首先,您忘记关闭“Accept”字典之后的字符串。也就是说,你的标题应该是这样的:

headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0',
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
}

关于payload,在检查了你链接的网站后,我注意到ID是在unloggedForm:krs2参数中发送的。您可以像这样将其添加到有效负载中:

payload={
    'unloggedForm:krs2': 0000000155
}

然而,实际上,像这样抓取网站几乎是不可能的,因为网站中内置了 ReCaptcha。您现在唯一的选择是使用 Selenium 并希望 ReCaptcha 不会阻止您,或者以某种方式对 ReCaptcha 进行逆向工程(不太可能)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多