-
string
- 태그(tag) 내 문자열을 반환
- 태그 내에 하위 태그가 두개 이상일 경우 무엇을 반환해야 하는지 명확하지 않기 때문에 None을 반환
- 태그 내에 하위 태그가 하나이고 그 안에 문자열이 존재할 경우 해당 문자열을 반환
-
strip([charset])
- ()안에 입력한 문자의 양쪽에 있는 모든 조합을 제거.
- 공백일경우 공백을 제거
-
lstrip([chars])
- 왼쪽에 있는 조합만을 제거
-
rstrip([chars])
- 오른쪽의 조합만을 제거
아래에 보이는 HTML에서 Boxy Charm을 .string으로 추출하려고 할 때
#HTML
<div class="jobsearch-SerpJobCard unifiedRow row result clickcard"
<a data-tn-element="companyName"class="turnstileLink"
target="_blank"href="https://www.indeed.com/cmp/Boxy-
Charm?from=SERP&campaignid=serp-
linkcompanyname&fromjk=983a9a109d1bc8ae&jcid=79a7d51f7ec
fda7b" onmousedown="this.href =
appendParamsOnce(this.href, 'from=SERP&campaignid=serp-
linkcompanyname&fromjk=983a9a109d1bc8ae&jcid=79a7d51f7ec
fda7b')" rel="noopener">
Boxy Charm</a>
</div>
1. find를 사용해서 상위의 class : jobsearch의 어트리뷰트를 가진 div태그를 추출한다. = html.
2. 마찬가지로 span, class를 추출한다.
html = soup.find("div", {"class":"jobsearch-SerpJobCard"})
company = html.find("span", {"class":"company"})
if company is not None:
# company의 하위 태그에도 문자열이 존재할 수 있으므로 a태그의 문자열도 확인
company_anchor = company.find("a")
# company_anchor 안에 문자열이 있을 경우 company_anchor의 문자열을 추출
if company_anchor is not None:
company = str(company_anchor.string)
# company_anchor에 문자열이 없을 경우 company의 문자열을 추출
else:
company = str(company.string)
#company의 양쪽 모든 공백을 제거
company = company.strip()
else:
company = None
'Web Scrapping' 카테고리의 다른 글
<class 'bs4.element.ㅁㅁㅁ'> (0) | 2020.07.18 |
---|---|
.find_all("tr")과 .find_all("tr")[:] (0) | 2020.07.18 |
1. requests와 beautifulsoup (0) | 2020.04.01 |
댓글