Просто отфильтруйте родительские и дочерние классы, я думаю, поскольку это исключает утверждения с родительским классом claim-dependent
, которые, как я предполагаю, являются зависимыми.
print(soup.select('.claim .claim')
3 совпадения (утверждения 1,6,19)
Вы можете увидеть один из каждого типа здесь:
Это для претензий 1 и 2. Верх, претензия1, имеет родительский div с классом claim
и дочерний элемент с классом claim
, тогда как нижний элемент по п.2 имеет родительский div с классом claim-dependant
, а затем дочерний элемент с классом claim
.Таким образом, вы указываете это отношение родительского класса и дочернего класса к фильтру.
from bs4 import BeautifulSoup
import requests
url = 'https://patents.google.com/patent/US7054130?oq=US7654309'
response = requests.get(url)
data = response.text
soup = BeautifulSoup(data, 'html.parser')
data = [claim.text for claim in soup.select('.claim .claim')]
print(data)