Здравствуйте!
Я решаю для себя одну задачу по парсингу с одного сайта товаров с определенными характеристиками, при этом на одной странице все работает отлично, но при переходе на другие страницы получается так, что парсятся те же самые товары с первой страницы.
Что я имею в виду. Предположим, есть несколько страниц с товарами (пусть будет 3), при этом:
на 1-й странице интересующих товаров – 2
на 2-й – 4,
на 3 – 1
Т.е. в итоговом файле должны быть 2+4+1=7 записей с разными товарами.
Но при выполнении кода с первой страницы в файл заносятся 2 товара, после чего еще 2 раза заносятся эти же 2 товара. Т.е. в итоговом файле получаю 6 записей, 4 последних из которых просто лишние копии товаров с первой страницы. Со 2-й и с 3-й старниц товары не добавляются. Я использовался такой код:
=========
def get_html(url, params=None):
r = requests.get(url, headers=HEADERS, params=params)
return r
…….
for page in range(1, pages_count + 1):
print(f'Парсинг страницы {page} из {pages_count}...')
html = get_html(URL, params={'page': page})
….
============
Я так понял, что проблема в следующем.
В моем случае адрес страниц выглядит следующим образом:
1-я страница:
«домен/c4035302/»
либо можно указать «домен/c4035302/page=1/», при этом перекинет на «домен/c4035302/»
2-я страница
«домен/c4035302/page=2/»
3-я страница
«домен/c4035302/page=3/»
Открыв документацию
https://requests.readthedocs.io/en/master/user/quickstart/#make-a-request , вижу следующее: «…If you were constructing the URL by hand, this data would be given as key/value pairs in the URL after a question mark, e.g.
httpbin.org/get?key=val….». Т.е., если я правильно понимаю, в моем случае код работал бы правильно, если бы вместо адреса
«домен/c4035302/page=2/»
У страницы был бы адрес
«домен/c4035302/?page=2/»
(т.е. был знак вопроса перед ключом «page»). Правильно ли я определил причину проблемы и. если да, то, как правильно нужно сделать в моем случае?
Заранее спасибо за ответ (или ссылку, где можно почитать об этом).