gpt4 book ai didi

python - 当 Chrome 浏览器工作时,Web Scraper 返回空的 html 文件;已经尝试过 UserAgent

转载 作者:太空宇宙 更新时间:2023-11-03 21:20:49 25 4
gpt4 key购买 nike

我是一个刚刚学习Python的菜鸟,但是我们的学士论文需要以下网站的数据(只是拉脱维亚政府的市政财务数据):

https://e2.kase.gov.lv/pub5.5_pasv/code/pub.php?module=pub

到目前为止,我已完成以下操作:

  1. 感到沮丧的是,这不是一个简单的 HTML 页面,而且它有这个“交互式”标题(抱歉,我对如何与其交互的了解非常有限)。
  2. 通过使用 Chrome 开发工具和网络选项卡,我发现我可以运行以下网址来“请求”我需要的期间、城市、财务报表等:https://e2.kase.gov.lv/pub5.5_pasv/code/ajax.php?module=pub&job=getDoc&period_id=1626&org_id=2542&blank_id=200079&currency_id=2&editable=0&type=HTML
  3. 创建了基本的 Python 代码来获取该 URL HTML(见下文)。
  4. 发现返回的是空数据。以为这是一个bug,然而,响应代码是200,据我了解,这意味着它是成功的。
  5. 在不同的浏览器中测试了此网址,您瞧。它可以在 Chrome 中运行,但是在 Microsoft Edge 中,它会返回一个空白页面。
  6. 在某处读到,我必须向服务器“介绍”自己,并尝试手动使用 header 和用户代理,以及将 fake_useragent 库与 Chrome 用户代理一起使用。但还是不行。
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
r = requests.get("https://e2.kase.gov.lv/pub5.5_pasv/code/ajax.php?module=pub&job=getDoc&period_id=1626&org_id=2542&blank_id=200079&currency_id=2&editable=1&type=HTML", headers=headers)
print(r.text)

所以我陷入了第 6 点。该 URL 在 Chrome 中运行良好,但在 Edge 中不起作用。我的 Python 代码似乎得到了与 Edge 浏览器相同的空白页 - 没有任何数据。

如果有人至少能引导我走向正确的方向或提供一些阅读 Material ,我将不胜感激,因为现在我不知道如何配置我的 Python 代码来重现 Chrome 的 HTML 输出。或者如果这甚至是解决此问题以获取此数据的合法(或良好)方法。

编辑:抱歉,大家,我发现无法从拉脱维亚境外访问该网站,但是,我找到了解决方案(见下文)。

最佳答案

解决了问题。

以前在模仿浏览器时我只使用了以下 header :

headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Mobile Safari/537.36'
}

事实证明,我必须包含发送到服务器的请求的所有响应 header (通过 Chrome 开发工具找到),如下所示:

headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en-US,en;q=0.9',
'Connection': 'keep-alive',
'Cookie': 'Cookie; Cookie',
'DNT': '1',
'Host': 'e2.kase.gov.lv',
'Referer': 'https://e2.kase.gov.lv/pub5.5_pasv/code/pub.php?module=pub',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Mobile Safari/537.36'
}

关于python - 当 Chrome 浏览器工作时,Web Scraper 返回空的 html 文件;已经尝试过 UserAgent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54268825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com