Удаление URL-адресов с нескольких веб-страниц - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь извлечь URL-адреса с нескольких веб-страниц (в данном случае 2), но по какой-то причине мой результат представляет собой дублированный список URL-адресов, извлеченных с первой страницы. Что я делаю не так?

Мой код:

# URLs of books in scope
urls = []
for pn in range(2):
    baseUrl = 'https://www.goodreads.com'
    path = '/shelf/show/bestsellers?page='+str(pn+1)
    page = requests.get(baseUrl + path).text
    print(baseUrl+path)
    soup = BeautifulSoup(page, "html.parser")
    for link in soup.findAll('a',attrs={'class':"leftAlignedImage"}):
        if link['href'].startswith('/author/show/'):
            pass
        else:
            u=baseUrl+link['href']
            urls.append(u)
for u in urls:
    print(u)

Вывод:

https://www.goodreads.com/shelf/show/bestsellers?page=1
https://www.goodreads.com/shelf/show/bestsellers?page=2
https://www.goodreads.com/book/show/5060378-the-girl-who-played-with-fire
https://www.goodreads.com/book/show/968.The_Da_Vinci_Code
https://www.goodreads.com/book/show/4667024-the-help
https://www.goodreads.com/book/show/2429135.The_Girl_with_the_Dragon_Tattoo
https://www.goodreads.com/book/show/3.Harry_Potter_and_the_Sorcerer_s_Stone
.
.
.
https://www.goodreads.com/book/show/4588.Extremely_Loud_Incredibly_Close
https://www.goodreads.com/book/show/36809135-where-the-crawdads-sing
.
.
.
https://www.goodreads.com/book/show/4588.Extremely_Loud_Incredibly_Close
https://www.goodreads.com/book/show/36809135-where-the-crawdads-sing

1 Ответ

1 голос
/ 28 мая 2020

Вы получаете повторяющиеся URL-адреса, потому что оба раза вы загружаете одну и ту же страницу. На этом веб-сайте отображается только первая страница бестселлеров, если вы не вошли в систему , даже если вы установите page=2.

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

...