нумерация страниц: почему он все еще работает, а страница не совпадает? - PullRequest
0 голосов
/ 04 сентября 2018

Я хочу собрать данные с веб-сайта, но сначала я хочу получить страницу с нумерацией страниц. Здесь я использую Python в качестве языка программирования, и я уже получил этот код. Но когда я запускаю его, он не работает должным образом. результат должен быть остановлен, когда response.url не совпадает с ожидаемым_url. Кто-нибудь знает, как это решить? Пожалуйста, помогите, спасибо. Вот код:

from bs4 import BeautifulSoup
import urllib.request

count = 0
url = "http://www.belanjamimo.net/foundation-bb-cream/?o=a&s=%d"


def get_url(url):
    req = urllib.request.Request(url)
    return urllib.request.urlopen(req)

expected_url = url % count
response = get_url(expected_url)

while (response.url == expected_url):
    print("GET {0}".format(expected_url))
    count += 9
    expected_url = url % count
    response = get_url(expected_url)

1 Ответ

0 голосов
/ 04 сентября 2018

Попробуйте описанный ниже подход, чтобы исчерпать все элементы на разных страницах и выйти из цикла, когда больше нет доступных элементов.

from bs4 import BeautifulSoup
import requests

url = "http://www.belanjamimo.net/foundation-bb-cream/?o=a&s={}"

page = 0
while True:
    res = requests.get(url.format(page))
    soup = BeautifulSoup(res.text,"lxml")
    items = soup.select(".product-block h2 a")
    if len(items)<=1:break  #check out if there is any product still available
    for item in items:
        print(item.text)

    page+=9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...