python для вставки номера цикла из диапазона

#python #for-loop #format #range

Вопрос:

Я пытаюсь очистить веб — страницу с разбиением на страницы.

Код:

 from requests_html import _URL, HTMLSession
from bs4 import BeautifulSoup

for page in range(1,6):
    s = HTMLSession()
    url = 'https://www.lazada.com.ph/catalog/?q=laptop'
    url  = 'amp;page={}'
    r=s.get(url.format(page))
    print(url)
 

Выход:

 https://www.lazada.com.ph/catalog/?q=laptopamp;page={}
https://www.lazada.com.ph/catalog/?q=laptopamp;page={}
https://www.lazada.com.ph/catalog/?q=laptopamp;page={}
https://www.lazada.com.ph/catalog/?q=laptopamp;page={}
https://www.lazada.com.ph/catalog/?q=laptopamp;page={}
 

Ожидание:

 https://www.lazada.com.ph/catalog/?q=laptopamp;page={1}
https://www.lazada.com.ph/catalog/?q=laptopamp;page={2}
https://www.lazada.com.ph/catalog/?q=laptopamp;page={3}
https://www.lazada.com.ph/catalog/?q=laptopamp;page={4}
https://www.lazada.com.ph/catalog/?q=laptopamp;page={5}
 

Я все еще новичок и изучаю python, пожалуйста, помогите мне получить ожидаемый результат. Заранее спасибо.

Комментарии:

1. Вы не изменяете url , только строку, отправленную на get() . Попробуйте url = url.format(page) , это даст вам https://www.lazada.com.ph/catalog/?q=laptopamp;page=1

2. Вы правильно используете url.format(page) интерполяцию числа в заполнитель. И вы правильно передаете этот отформатированный URL s.get -адрес. Но это не изменяет неформатированную url переменную, когда вы затем печатаете.

Ответ №1:

Если ваша версия python поддерживает строки f…

 from requests_html import _URL, HTMLSession
from bs4 import BeautifulSoup

for page in range(1,6):
    s = HTMLSession()
    url = f'https://www.lazada.com.ph/catalog/?q=laptopamp;page={page}'
    r = s.get(url)
    print(url)
 

Ответ №2:

URL-адрес не изменяется, попробуйте:

 from requests_html import _URL, HTMLSession
from bs4 import BeautifulSoup

for page in range(1,6):
    s = HTMLSession()
    url = 'https://www.lazada.com.ph/catalog/?q=laptop'
    url  = 'amp;page={}'
    url = url.format(page)
    r = s.get(url)
    print(url)
 

Или даже лучше:

 from requests_html import _URL, HTMLSession
from bs4 import BeautifulSoup
for page in range(1,6):
    s = HTMLSession()
    url = 'https://www.lazada.com.ph/catalog/?q=laptopamp;page={}'.format(page)
    r = s.get(url)
    print(url)