Как ограничить количество результатов при соскобе - PullRequest
2 голосов
/ 27 июня 2019

Я пытаюсь почистить сайт и его работу, но я хотел бы ограничить количество результатов, которые появляются.Как бы я это сделал?

req = requests.get('https://www.imdb.com/list/ls026573448/')
soup2 = bs4.BeautifulSoup(req.text,)

def pressed(self, instance):
    genre = self.genre.text
    if genre == 'Horror' or 'horror':
        soup2.select('h3')
        for x in soup2.select('h3'):
            print(x.text)

Когда я запускаю этот код, появляется около 50 результатов.Как бы я ограничил его до 20 или 15?

1 Ответ

0 голосов
/ 27 июня 2019

Вот пример использования: has и: contains для выделения соответствующих элементов, затем используйте limit, чтобы остановиться на 20 (спасибо @facelessuser за указание на это). Это с bs4 4.7.1.

from bs4 import BeautifulSoup
import requests

r = requests.get('https://www.imdb.com/list/ls026573448/')
soup = bs(r.content, 'lxml')
films = [item.text for item in soup.select('.lister-item-header:has(~ p:has(.genre:contains("Horror"))) a', limit = 20)]
print(films)
...