Python - Beautiful Soup - Как отфильтровать извлеченные данные по ключевым словам? - PullRequest
1 голос
/ 18 марта 2019

Я хочу очистить данные веб-сайтов с помощью Beautiful Soup и запросов, и я зашел так далеко, что получил нужные данные, но теперь я хочу отфильтровать их:

from bs4 import BeautifulSoup
import requests
url = "website.com"
keyword = "22222"
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data, 'lxml')

for article in soup.find_all('a'):
    for a in article:
        if article.has_attr('data-variant-code'):
            print(article.get("data-variant-code"))

Допустим, это печатает следующее: 11111 22222 33333

Как я могу отфильтровать это, чтобы оно только возвращало мне "22222"?

Ответы [ 2 ]

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

при условии, что article.get("data-variant-code") печатает 11111, 22222, 33333, вы можете просто использовать оператор if:

for article in soup.find_all('a'):
    for a in article:
        if article.has_attr('data-variant-code'):
           x = article.get("data-variant-code")
           if x == '22222':
               print(x)
0 голосов
/ 18 марта 2019

Если вы хотите напечатать 2-ю группу символов в строке, разделенной пробелом, вы можете разделить строку, используя пробел в качестве разделителя. Это даст вам список строк и доступ ко второму элементу списка.

Например:

print(article.get("data-variant-code").split(" ")[1])

result:  22222
...