#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)
интерполяцию числа в заполнитель. И вы правильно передаете этот отформатированный URLs.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)