python_BeautifulSoup 라 이브 러 리 필터
7925 단어 python
C:\Users\Loulan>pip list --format=columns
Package Version
-------------- -----------
beautifulsoup4 4.6.0
C:\Users\Loulan>python -V
Python 3.6.2
모두 findall 예
find_all(self, name=None, attrs={}, recursive=True, text=None, limit=None, **kwargs)
string, list, regular expression, True, function 등 다섯 가지 유형의 filter 가 있 습 니 다.
name, attrs 의 value, text, * * kwargs 네 개의 매개 변 수 는 상기 모든 filter 를 사용 할 수 있 습 니 다.
regular expression 필터: 정규 표현 식 을 입력 하면 BeautifulSoup 은 search () 방법 으로 찾 습 니 다.
function 필터: return True 가 일치 하 는 요 소 를 설명 하면 일치 하 는 요 소 를 되 돌려 줍 니 다.
from bs4 import BeautifulSoup as Soup
0x 02 예시
1. name 속성
string 필터
모든 b 탭 찾기
soup.find_all('b')
soup.find_all(name='b')
list 필터
모든 a 태그 와 b 태그 찾기
soup.find_all(['a','b'])
regular expression 필터
태그 포함 알파벳 'a' 를 포함 하 는 모든 태그 찾기
soup.find_all(re.compile('a'))
모든 tag 에 'a' 가 포함 되 어 있 지 않 은 tag 찾기
soup.find_all(re.compile('[^"a",]'))
트 루 필터
바디 에 있 는 모든 태그 찾기
soup.find('body').find_all(True)
function 필터
xx 탭 을 찾 습 니 다. 이 탭 은 앞 뒤 가 string 대상 입 니 다.
def search_a_x_b(tag):
return tag and isinstance(tag.previous_element,str) and isinstance(tag.next_element,str)
soup.find(search_a_x_b)
2. attrs 속성
string 필터
모든 id 속성 찾기 링크 의 tag
soup.find_all(attrs={'id':'link'})
list 필터
id 속성 값 을 링크 나 new 로 찾 습 니 다.링크 의 모든 태그
soup.find_all(attrs={'id':['link','new_link']})
regular expression 필터
링크 1, new 를 포함 하여 id 속성 값 에 링크 가 있 는 모든 탭 을 찾 습 니 다.링크 등
soup.find_all(attrs={'id':re.compiles('link')})
트 루 필터
id 속성 이 있 는 모든 tag 찾기
soup.find_all(attrs={'id':True})
function 필터
href 속성 값 에서. img 으로 끝 나 는 모든 tag 찾기
def search_id(attr):
return attr and attr.lower().endswith('.img')
soup.find_all(attrs={'href':search_id})
3. string / text 속성
BeautifulSoup 4.6 이전의 string 은 현재 text 로 바 뀌 었 지만 string 을 사용 할 수도 있 습 니 다.
string 필터
메모: - 기본적으로 string 의 값 만 되 돌려 줍 니 다. - previous 를 통 해 가능 합 니 다.element 속성 으로 string 값 이 있 는 tag 를 획득 합 니 다.
——-
value 찾기 는 loulan 의 모든 string 입 니 다.
soup.find_all(string='loulan')
value 찾기 는 loulan 의 모든 tag 입 니 다.
[value.previous_element for value in soup.find_all(string='loulan')]
list 필터
value 는 'loulan' 이나 'nihao' 의 모든 string 을 찾 습 니 다.
soup.find_all(string=['loulan','nihao'])
regular expression 필터
value 에 'loulan' 이 존재 하 는 모든 string 찾기
soup.find_all(string=re.compile('loulan'))
트 루 필터
value 값 의 모든 string 찾기
soup.find_all(string=True)
function 필터
모든 value 값 을 찾 는 것 은 loulan 으로 끝 나 는 string 입 니 다.
def search_string(string):
return string and string.lower().endswith('loulan')
soup.find_all(string=search_string)
4. * * kwargs 속성
string
메모: class 는 보존 글자 이기 때문에 class 속성 이 일치 할 때 class 를 사용 합 니 다.대신 하 다
——-
class 속성 값 을 찾 는 것 은 loulan 의 모든 tag 입 니 다.
soup = Soup.find_all(class_='loulan')
list 필터
class 의 값 을 찾 는 것 은 luolan 이나 nihao 의 모든 tag 입 니 다.
soup = Soup.find_all(class_=['loulan','nihao'])
regular expression 필터
class 의 값 이 img 를 포함 하 는 모든 tag 를 찾 습 니 다.
soup = Soup.find_all(class=re.compile('loulan'))
트 루 필터
class 속성 을 포함 하 는 모든 tag 찾기
soup = Soup.find_all(class=True)
function 필터
href 값 에서 img 으로 끝 나 는 모든 tag 찾기
def search_img(href):
return href and href.lower().endswith('.img')
soup.find_all(href=search_img)
0x 03 총화
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.