Как решить проблему с кодом парсера?

Вот такой код есть :

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)

    try:
        name = soup.find('div', {'class': 'pull-md-left'}).find_next('h1').text
    except AttributeError:
        name = ''
    # print(name)

    # Получаем id из адресной строки:
    idn = str(soup.find('span', {'itemprop': 'item'}).get('itemid')).replace('5140',
                                                                             '')  # Обрезаем ненужный элемент
    x = ''.join(re.findall('[0-9]+', idn))  # вычленяем число(id), преобразуем в строку и создаем переменную
    phone = requests.post(post_url, cookies=cookies, headers=headers, data=
    {'data_type': 'phone', 'item_id': {x}})  # отправляем POST запрос, в значение data отправляем переменную 'x'
    for t in phone:  # парсим результат ответа на запрос
        n = phone.content
        tel = BeautifulSoup(n, 'lxml').text  # это значение пишется в файл
        # print(name, tel)

company = {
    'name': name,
    'tel': tel,
}

companys.append(company)

with open('companys.csv', 'w', newline='') as file:
    writer = csv.writer(file, delimiter=',', lineterminator='\r')
    writer.writerow(['Name', 'Tel'])
    for company in tqdm(companys):
        writer.writerow(
            [company['name'], company['tel']])

if __name__ == "__main__":
    pass

Выдает ошибку:

requests.exceptions.MissingSchema: Invalid URL '': No scheme supplied. Perhaps you meant http://?

в строке q = requests.get(line, headers=headers)

При этом отдельные куски кода отрабатывают. Этот кусок выдает корректрую информацию в консоль:

# Получаем id из адресной строки:
idn = str(soup.find('span', {'itemprop': 'item'}).get('itemid')).replace('5140',
                                                                         '')  # Обрезаем ненужный элемент
x = ''.join(re.findall('[0-9]+', idn))  # вычленяем число(id), преобразуем в строку и создаем переменную
phone = requests.post(post_url, cookies=cookies, headers=headers, data=
{'data_type': 'phone', 'item_id': {x}})  # отправляем POST запрос, в значение data отправляем переменную 'x'
for t in phone:  # парсим результат ответа на запрос
    n = phone.content
    tel = BeautifulSoup(n, 'lxml').text  # это значение пишется в файл
    # print(name, tel)

Следовательно, ошибка возникает при попытке записать в файл. Как решить эту проблему ?


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