当Chrome浏览器工作时,Web Scraper返回空的html文件;已经尝试了UserAgen

2024-06-02 04:50:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个刚学Python的新手,然而,对于我们的学士学位论文,我们需要以下网站的数据(它只是拉脱维亚政府的市政财政数据):

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

到目前为止,我已经做了以下工作:

  1. 我很沮丧,这不是一个简单的HTML页面,它有这个'互动'标题(对不起,我的知识是非常有限的,如何与之互动)。你知道吗
  2. 通过使用chromedev工具和network选项卡,我发现我可以运行以下URL来“请求”我需要的期间、市政当局、财务报表等: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中工作,但是在microsoftedge中,它返回一个空页。你知道吗
  6. 在某个地方读到,我必须“介绍”自己到服务器,并试图使用头和用户代理既手动,也使用一个假的\u 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)

所以我被困在第六点。URL在Chrome中运行良好,在Edge中不起作用。我的Python代码似乎得到了相同的空白页边缘浏览器得到-没有任何数据。你知道吗

如果有人能帮我找到正确的方向或者给我一些阅读材料,我会非常感激,因为现在我不知道如何配置我的Python代码来重现Chrome的HTML输出。。或者如果这是一个合法的(或良好的)方式,如何处理这个问题,以获得这些数据。你知道吗

编辑:抱歉,伙计们,我发现这是不可能从拉脱维亚以外的访问这个网站,但是,我已经找到了一个解决方案(见下文)。你知道吗


Tags: 数据代码httpsidhtmlcodechromegov
1条回答
网友
1楼 · 发布于 2024-06-02 04:50:11

解决了问题。你知道吗

以前在模拟浏览器时,我只使用以下标题:

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'
}

原来我必须包含发送到服务器的请求的所有响应头(通过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'
}

相关问题 更多 >