Как в цикле делать POST запрос на Python?

Код:

with open('all_links.txt', 'r') as f:
lines = [line.strip() for line in f.readlines()]
companys = []

time.sleep(1)

for line in lines:
    response = requests.post(post_url, cookies=cookies, headers=headers, data=data).text
    print(response)

фото1

фото2

фото3

фото4

Как видно на скринах, при нажатии на кнопку "показать номер", создается POST запрос, ответом на который получаем номер. Вопрос в том, как в цикле создавать этот запрос, чтоб id был соответсвенно карточки, т.е. менялся с каждым обращением на новую карточку организации. Вот урл страницы, в ней указан этот id: https://5140.org/fop/**965385**-osipchuk-sergij-vitalijovich

Состветственно, в адресе другой карточки, другой id и тд. Может как-то из адреса можно взять и отправлять как id в data. Помогите.


Ответы (1 шт):

Автор решения: AnKus

Решение найдено. Если кому интересно, вот код:

import time
import requests
from datas import headers, cookies  # заголовки и куки сохранены в отдельном файле
from bs4 import BeautifulSoup
import re

post_url = 'https://5140.org/fops/request'  # адрес, куда уходит POST запрос

with open('all_links.txt', 'r') as f:
    lines = [line.strip() for line in f.readlines()]
    # companys = []

time.sleep(1)
for line in lines:
    try:
        q = requests.get(line, headers=headers)
    except requests.ConnectionError as e:
        continue
    result = q.content
    soup = BeautifulSoup(result, 'lxml')
    time.sleep(1)

    # Получаем id из адресной строки:
    idn = str(soup.find('span', {'itemprop': 'item'}).get('itemid')).replace('5140', '')# Обрезаем ненужный элемент
    x = ''.join(re.findall('[0-9]+', idn))# вычленяем число(id), преобразуем в строку и создаем переменную

    response = requests.post(post_url, cookies=cookies, headers=headers, data=
    {'data_type': 'phone', 'item_id': {x}}).text # отправляем POST запрос, в значение data отправляем переменную 'x'
    print(response)

if __name__ == "__main__":
    pass

и получаем необходимую информацию. итог

→ Ссылка