Python Beautifulsoup возвращает значения дважды - PullRequest
0 голосов
/ 18 марта 2020

Я пишу код для извлечения некоторых значений, но код возвращает значения дважды.

Мой код:


def getResponse(url, user_agent):
    page = requests.get(url, headers={'user-agent': user_agent.random})
    soup = BeautifulSoup(page.text, 'html.parser')
    return soup

def getListing(soup):
    list_result = soup.find("div", {"class": ["pageMainContent"]})
    list_results = list_result.find_all("div", {"class": ["fontPreviewTitle"]})
    for one_result in list_results:
        product_url = one_result.find("a").get("href")
        yield product_url



url = "https://www.1001freefonts.com/3d-fonts.php"

soup = getResponse(url, UserAgent())

for url in getListing(soup):
    print(url)

Вывод:

Saraths-MacBook-Air:~ evilslab$ /Library/Frameworks/Python.framework/Versions/3.8/bin/python3 /Users/evilslab/Documents/Websites/www.futurepoint.dev.cc/dobuyme/SCRAP/fonts.py
/orange-juice.font
/orange-juice.font
/from-cartoon-blocks.font
/from-cartoon-blocks.font
/cantate-beveled.font
/cantate-beveled.font
/wedgie.font
/wedgie.font
/alba.font
/alba.font

Как я могу решить эту проблему? Как избежать повторяющихся значений

1 Ответ

0 голосов
/ 18 марта 2020

в вашей функции getListing (), замените list_results на следующее

list_results = list_result.find_all("div", {"class": ["fontPreviewTitle responsiveMobileCenter"]})

Вы получите уникальный результат с вышеприведенным. И больше никаких изменений не требуется в вашем коде

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