首页 > 解决方案 > 发送POST请求时如何给出搜索数据循环返回错误消息的异常?

问题描述

我有 ID,他们每个人都在网站表单中发送 HTTP POST 请求,但其中一些返回错误,整个语法停止返回剩余 ID 的输出。该站点必须在名为“tip”的列表中选择一个用于公司(L),另一个用于个人(P)。 代码应该检查 ID ('voen') 是否与 'tip' L (对于个人) 相关,然后在网站中搜索 ID 时 L 的形式 (在 form_data 列表中你可以看到名为 "tip" 的键被引用提示列表。

import requests
from bs4 import BeautifulSoup

request_headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'en-US,en;q=0.9',
    'Cache-Control': 'max-age=0',
    'Connection': 'keep-alive',
    'Content-Type': 'application/x-www-form-urlencoded',
    'Host': 'www.e-taxes.gov.az',
    'Origin': 'https://www.e-taxes.gov.az',
    'Referer': 'https://www.e-taxes.gov.az/ebyn/payerOrVoenChecker.jsp',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-Site': 'same-origin',
    'Sec-Fetch-User': '?1',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'YOUR USER AGENT',
}

voens = [1700401281,
         4501313952,
         ]

tip = ['L',
       'P',
       ]

form_data = {
    'tip': tip,
    'voenOrName': 'V',
    'voen': voens,
    'name': '',
    'submit': '  Yoxla   ',
}


url = 'https://www.e-taxes.gov.az/ebyn/payerOrVoenChecker.jsp'

for voen in voens:
    form_data['voen'] = voen
    response = requests.post(url, data=form_data, headers=request_headers)
    s = BeautifulSoup(response.content, 'lxml')
    sContent = s.findAll('table', {'class': 'com'})[0].findAll('tr', recursive=False)[1]
    print(type(sContent))
    **if sContent:**
        outcome = sContent.get_text().strip()
        print(outcome)
    else:
        form_data['tip'] = tip[1]
        response = requests.post(url, data=form_data, headers=request_headers)
        sContent = s.findAll('table', {'class': 'com'})[0].findAll('tr', recursive=False)[1]
        print(sContent)

在“voens”字典上面的代码中,有一个公司和一个个人ID,在代码中我写它就像如果ID不是公司然后检查另一个“提示”(P)我在if sContent:错误消息行中细化了问题:sContent = s.findAll('table', {'class': 'com'})[0].findAll('tr', recursive=False)[1] IndexError: list index out of rang

标签: pythonpython-requests

解决方案


推荐阅读