Java имеет пул строк, в котором Java управляет распределением памяти для объектов String. См. String Pools в Java
Когда вы проверяете (сравниваете) два объекта с помощью оператора ==
, он сравнивает равенство адресов в пуле строк. Если два объекта String имеют одинаковые адреса, то он возвращает true
, в противном случае false
. Но если вы хотите сравнить содержимое двух объектов String, вы должны переопределить метод equals
.
equals
- фактически метод класса Object, но он переопределяется в класс String и дается новое определение, которое сравнивает содержимое объекта.
Example:
stringObjectOne.equals(stringObjectTwo);
Но помните, что это относится к случаю String. Если вы хотите сравнить регистр без учета регистра, вы должны пойти для метода equalsIgnoreCase класса String.
Давайте посмотрим:
String one = "HELLO";
String two = "HELLO";
String three = new String("HELLO");
String four = "hello";
one == two; // TRUE
one == three; // FALSE
one == four; // FALSE
one.equals(two); // TRUE
one.equals(three); // TRUE
one.equals(four); // FALSE
one.equalsIgnoreCase(four); // TRUE
Если вы ищете один элемент
a = soup.find('div', {'class':"class-name"})
a['data-fmid']
Если есть несколько делений, из которых вы хотите получить данные:
a = soup.find_all('div', {'class':"class-name"})
for ai in a :
print(ai['data-fmid'])
Используйте селектор атрибутов css , так как они для
items = [item['data-fmid'] for item in soup.select("[data-fmid]")]
import urllib.request
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = 'http://dnedesign.us.to/tables/'
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page, "html.parser")
status = []
for div in soup.find_all('div', attrs={'class':'mobile-menu-anchor fixed-primary-menu'}):
print (''.join(div['id']))
Вы можете изменить значение в url
на фактический URL-адрес, имя class
в коде с фактическим именем класса и изменить id
на data-fmid
. Или, если вы хотите получить имя class
и id
в каждом div
, вы можете использовать это loop
:
for div in soup.find_all('div'):
try:
print ('id : ' + ''.join(div['id']))
print ('class : ' + ' '.join(div['class']))
print()
except:
pass
Определите div
- class
:
all_num_class = soup.find_all('div', class_='classname')
for ai in all_num_class:
print(ai.get('data-fmid'))
Или вы можете использовать любое attr
для идентификации div
, который вы хотите сканировать:
all_num_class = soup.find_all('div', attr={'class':'classname'})
for ai in all_num_class:
print(ai.get('data-fmid'))