Я пытаюсь проанализировать только независимые претензии от google.com/patents, но они используют то же имя класса, что и дочерние зависимые претензии. Я новичок, но я думаю, что я пытаюсь спросить, как мне исключить дочерние результаты, если у родителя есть определенное имя класса.
Я пытался работать с примерами родитель/ребенок/брат/сестра/и т.д.. из учебника это BeautifulSoup.
К сожалению, ничего не помогло.
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')
claims = soup.find_all('div', class_='claim')
for claim in claims:
if claim.find(class_='claim-dependent style-scope patent-text'):
continue
print(claim.text)
Я ожидал, что разделы зависимых пунктов будут пропущены и напечатаны только независимые пункты.
Результаты. Распечатываются все утверждения, независимые и зависимые.






Ваш оператор if ничего не делает, потому что он содержит только continue (и результат, кстати, пуст), поэтому вы печатаете все утверждения в следующей строке.
Вы можете отфильтровать все заявки с зависимым тегом claim-ref:
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')
claims = soup.find_all('div', class_='claim')
for claim in claims:
if not claim.find('claim-ref'):
print(claim.find(class_='claim'))
Каждый дочерний элемент (зависимый cliam) имеет тег <claim-ref>, который ссылается на одного родителя, например. <claim-ref idref = "CLM-00001">claim 1</claim-ref>. Я фильтрую такие все претензии, которые имеют такой тег, чтобы остались только независимые претензии. Также, пожалуйста, примите решение или проголосуйте за него, если оно вам помогло или понравилось. :-)
Я думаю, просто отфильтруйте родительские и дочерние классы, поскольку это исключает утверждения с родительским классом 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)
Я новичок в этом и немного не уверен, откуда взялся «требование-ссылка». Относится ли это к «зависимому от претензии», где ref занимает место «зависимого»?