使用XAuth和承载令牌登录后的Webscraping

2024-09-30 02:25:25 发布

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

我正在创建一个小脚本,它将为我和我的同事节省无数的时间。问题是,我需要根据客户的号码(客户号)从网页上获取客户的数据。整个页面当然在登录页面后面,但我在浏览器中手动登录并复制承载和X-Auth令牌,这应该足以授权这些请求,对吗

然后我使用URL“https://moje.csobstavebni-oz.cz/group/nel/vysledky-vyhledavani?searchText=CLIENT_NO“它模仿搜索栏的搜索请求。这将使我进入所需页面。我正在寻找“BirthNumberRico”等数据,如屏幕截图中突出显示的

我看到的一个小问题是,请求URL当然与上面提到的不同。但是我不能使用请求URL,因为在这个URL中有客户端ID而不是客户端号,我不知道

不幸的是,我无法从中获得任何信息,Python将始终返回空白列表[]。我怀疑这是因为所有的授权密钥和令牌(正如您在我的标题中看到的,它们当然不是完全写出来的,原因很明显)

我尝试了在Youtube上找到的几种选择,但是现在,我完全绝望了,我不知道,我还能做什么。也许只是我犯了一个小错误,这会解决整个问题

Screenshotscreenshot2screenshot3

提前非常感谢

import scrapy
import json

class KlientUdaje(scrapy.Spider):
    name = 'klient_udaje'
    start_urls = ['https://moje.csobstavebni-oz.cz/group/nel']

    headers = {
        "Accept": "*/*",
        "Accept-Encoding": " gzip, deflate, br",
        "Accept-Language": " en-US,en;q=0.9,cs;q=0.8",
        "Authorization": " Bearer d2ba2XXXXXX",
        "Cache-Control": " no-cache",
        "Connection": "keep-alive",
        "Host": " moje.csobstavebni.cz",
        "Origin": " https://moje.csobstavebni-oz.cz",
        "Pragma": " no-cache",
        "Referer": " https://moje.csobstavebni-oz.cz/",
        "RequestId": " cklydjuq000073q679q5kd2tb",
        "Sec-Fetch-Dest": " empty",
        "Sec-Fetch-Mode": " cors",
        "Sec-Fetch-Site": " cross-site",
        "SystemId": ": 47",
        "User-Agent": "Mozila/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36 Edg/89.0.774.45",
        "X-Auth-Token": "eyAidHlwIjogIkpXVCIsICJraWQiOiAiT2pDY3ErdklKTXXXXX"
        }

    def parse(self, response):
        url = 'https://moje.csobstavebni-oz.cz/group/nel/vysledky-vyhledavani?searchText=CLIENT_NO'

        yield scrapy.Request(url, 
            callback=self.parse_api, 
            headers=self.headers)
    
    def parse_api(self, response):
        raw_data = response.body
        data = json.loads(raw_data)
        rodne_cislo = data['birthNumberIco']
        print(rodne_cislo)
    

Tags: httpsselfurldata客户groupcz页面

热门问题