При поиске каждого значения выводятся пустые списки при отправке запроса POST - PullRequest
0 голосов
/ 25 октября 2019

Раньше я находил список форм_данных в сети, а затем отправлял POST-запросы, но в этом случае нет такой вещи, вместо этого я беру запросов полезных нагрузок . Таким образом, кажется, что этот метод не работает.

Это URL сайта: https://www.e -taxes.gov.az / ebyn / vergiBorcu.html

Вход : <input ng-model="" voen="" placeholder="1234567891" type="text" class="form-control ng-valid ng-dirty ng-valid-parse ng-touched ng-empty" id="voen">

Это код, который я пробовал:

import requests
from bs4 import BeautifulSoup
import csv
import json

request_headers = {
    'Accept': 'application/json, text/plain, */*',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'en,en-GB;q=0.9',
    'Connection': 'keep-alive',
    'Content-Length': '50',
    'Content-Type': 'application/json;charset=UTF-8',
    'Cookie': 'ETAXES=etaxes; JSESSIONID=C033E796031CA5C84A3A7B38E24330D4',
    'Host': 'www.e-taxes.gov.az',
    'Origin': 'https://www.e-taxes.gov.az',
    'Referer': 'https://www.e-taxes.gov.az/ebyn/vergiBorcu.html',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                  'Chrome/75.0.3770.142 Safari/537.36',

}

taxid = {
    '8400260181',
    '1700393071',
    '1004199751',
    '2002283071',
}

payloads = {"METHOD": "wsEbynGetDebetSum",
            "voen": taxid,
            }

url = 'https://www.e-taxes.gov.az/ebyn/vergiBorcu.html'

for voen in taxid:
    payloads['voen'] = voen
    response = requests.post(url, data=json.dumps(payloads), headers=request_headers)
    s = BeautifulSoup(response.content, 'lxml')
    sContent = s.find('div', class_="col-sm-3").find_all("input", class_="form-control ng-pristine")
    print(voen)
    print(sContent)

with open('taxDebt.csv', 'w', newline='', encoding='utf-8') as myfile:
    writer = csv.writer(myfile, quoting=csv.QUOTE_ALL, delimiter="\n")
    writer.writerow(sContent)

Я ожидал получить выводкак Debt: "value", но возвращает пустые списки:

1700393071
[]
1004199751
[]
8400260181
[]
2002283071
[]

1 Ответ

0 голосов
/ 25 октября 2019

Я считаю, что ваш find синтаксис неверен. Вы ищете тег, который выглядит как <div class="col-sm-3">, чтобы получить его с помощью BeautifulSoup, попробуйте этот

s.find("div", class_="col-sm-3")

Также необходимо изменить вызов find_all:

sContent = s.find('div', class_= "col-sm-3").find_all("input", class_= "form-control ng-pristine")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...