반응형
BeautifulSoup

BeautifulSoup

HTML, XML 문서를 구조적으로 분석하여 원하는 데이터를 쉽게 추출하게 도와주는 모듈.
bs4 (버전4)를 사용하기를 권장함.

간단하게 요약

  • 설치
    pip install beautifulsoup4
    pip install lxml
from bs4 import BeautifulSoup
soup = BeautifulSoup(html) # html 문서를 파싱한다. (string, network connection 등)
print(soup.prettify())  # HTML을 이쁘게 출력한다.

soup.title # <title>hello</title>
soup.title.string # hello
soup.title.parent.name # head
soup.p # <p class="tt"><b>hi</b></p>
soup.p['class']  # tt
soup.a  # <a class='sister' href='http://abc.com/el' id='link1'>El</a>

soup.find_all('a') # [<a>..</a>, <a>...</a>, <a>..</a> ]

soup.find(id='link3') # <a href="http://abc.com/ea', id='link3'>EA</a>

for link in soup.find_all('a'):
	print(link.get('href')) # http://....

soup.get_text() # hello hi El....
  • BeautifulSoup(markup, parser)
    • markup : html 문서 스트링, html 문서 파일핸들, 네트웍 커넥션 등
    • parser : ‘html.parser’ 또는 ‘lxml’
    • lxml이 더 빠르고 관대함. xml도 지원.
  • 태그 출력은 preffify() : 이쁘게 출력한다. soup.prettify()
  • 그대로 출력하려면 str()로 타입캐스팅. str(soup)
  • 태그는 .태그명으로 접근한다. 기본적으로 이름이 있고 .name 으로 알 수 있으며 name을 변경하면 문서에도 반영된다.
    • soup.p = “div”
  • 태그의 속성은 [속성]으로 접근한다. 또는 get()으로 접근할 수 있다. 속성은 .attrs로 알 수 있다.
    • soup.p.attrs # 속성목록 조회 {‘class’:‘bold’}
    • soup.p[‘class’] : 속성을 구한다. 키가 없으면 KeyError 발생
    • soup.p.get(‘class’) : 위와 같지만 키가 없으면 None리턴으로 존재여부 체크를 할 수 있음.
    • 속성값이 여러개면 리스트로 반환된다.
  • 태그의 속성 수정
    • soup.p[‘class’]=‘verybold’
    • soup.p[‘id’]=1
    • soup.p
      <p class="verybold" id="1">
    • del soup.p[‘class’] # 속성 삭제
  • 스트링 변경
    • soup.p.string.replace_with(“new text”)
  • 스트링 추출 (string vs text)
    • soup.p.string : p태그 내의 스트링. 주의! 내부에 순수하게 스트링만 존재해야함. 아니면 None. (태그가 있어도 안됨.)
    • soup.p.text 또는 soup.p.get_text() : 내부의 텍스트를 전체 가져옴.
  • 태그의 자손. 리스트로 리턴한다.
    • soup.p.contents : 리스트로 가져온다.

find / find_all

태그를 찾는다. 클래스나 아이디로도 검색가능. find는 한 개를 찾고 find_all은 복수개를 찾는다. find_all은 리스트로 리턴한다.

  • find_all(“title”) : title태그를 모두 찾는다.
  • find_all(“p”, “title”) : p태그 중 class가 title인 태그를 모두 찾는다.
  • find_all(id=“link2”) : ID로 찾는다.
  • find_all(class_=re.compile(“itl”)) : 클래스명에 itl이 들어간 태그들 모두 추출
  • find_all(text=“elise”) : 문자열 찾기
  • find_all(“a”, text=“elise”) : 태그내의 문자열로 태그 찾기
  • 정규식 지원
    • soup.find_all( re.compile("^b")) : b로 시작하는 태그 모두 추출. ( b, body 등)
  • 여러 태그 추출도 가능
    • soup.find_all([“a”, “b”]) : 리스트로 주면 리스트내의 태그들을 모두 찾는다.
    • find_all(“a”, limit=2) : 최대 2개만 찾는다.
    • find_all(“title”, recursive=False) : 1뎁스(직계차일드)만 검색함. 예를 들면 soup.html.에서 위와 같이 찾으면 [] 리턴(not found.)
    • find_all() 대신 ()만 사용해도 같다. (함수이름 생략) 예를 들면 soup.title.find_all(text=True)는 soup.title(text=True) 와 동일.
    • find()는 처음 발견된 한 개만 리턴. (find_all에서 limit=1을 주면 동일한데, 리스트가 아닌 스트링(태그객체)으로 리턴.)
    • Not Found인 경우, find()는 None 리턴. find_all()은 [] 리턴.

find_parent/ find_parents

  • find / find_all의 반대. 상위계층으로 올라가면서 찾는다.
  • a_string = soup.find(text=‘top10’) # u’top10’
  • a_string.find_parents(“a”) # [ a태그들을 가져옴 ]
  • a_string.find_parent(“p”) # p태그를 가져옴.

select

  • soup.select(선택자) : css 선택자로 검색한다. 그냥 태그를 쓰면 태그 검색. 항상 리스트로 리턴함.
  • soup.select(‘title’)
  • soup.select(“body a”)
  • soup.select(“html head title”)
  • soup.select(“head > title”) : 헤드내부에 1단계 뎁스에서 title 찾기.
  • 클래스 찾기 : soup.select(".sister") 또는 soup.select("[class~=sister]")
  • ID로 찾기 : soup.select("#link1")
  • 속성으로 찾기
    • soup.select(‘a[href=“http://abc.com/elise”]’)
    • soup.select(‘a[href^=“http://abc.com/”]’) : 이것으로 시작하는 링크들. 끝나는 링크는 href$를 사용.

get_text

  • 텍스트 부분만 모두 추출한다. 하나의 스트링을 만들어 리턴.
  • .text로 해도 된다.

strings/stripped_strings

  • 둘 다 스트링들만 리스트로 추출하는 건데, stripped_strings는 필요없는 것을 제거함.
  • 줄바꿈, 공백 등 필요없는 것들에 제거한 스트링 리스트를 리턴. [text for text in soup.stripped_strings]

Author: crazyj7@gmail.com

'Python' 카테고리의 다른 글

파이썬 개발환경/가상환경구축  (0) 2019.12.01
진법 표현 및 수 스트링 변환  (0) 2019.11.24
크롤링(Crawl) 2편  (2) 2019.10.27
웹 크롤링 Crawl 1편  (0) 2019.10.24
인코딩에러 cp949  (1) 2019.10.02
반응형
derivative_br_41

41. ddx(x)sqrt(4x2)\frac{d}{dx} (x)sqrt(4-x^2)

ddxx4x2=4x2+x2x24x2=42x24x2 \begin{aligned} &\frac{d}{dx} x\sqrt{4-x^2}=\sqrt{4-x^2}+x\frac{-2x}{2\sqrt{4-x^2}}\\ &=\frac{4-2x^2}{\sqrt{4-x^2}} \end{aligned}


42. ddxsqrt(x21)/x\frac{d}{dx}sqrt(x^2-1)/x

ddxx21x=2x22x21x21x2=1x21x21x2=1x2x21 \begin{aligned} &\frac{d}{dx} \frac {\sqrt{x^2-1}} x =\frac {\frac{2x^2}{2\sqrt{x^2-1}}-\sqrt{x^2-1}}{x^2}\\ &=\frac{1}{\sqrt{x^2-1}}-\frac{\sqrt{x^2-1}}{x^2} \\ &=\frac{1}{x^2\sqrt{x^2-1}} \end{aligned}


43. ddxx/sqrt(x21)\frac{d}{dx}x/sqrt(x^2-1)

ddxxx21=x21x2x2x21x21=1x21x2x21(x21)=1x21(x21) \begin{aligned} &\frac{d}{dx} \frac x {\sqrt{x^2-1}}\\ &=\frac{\sqrt{x^2-1}-x\frac{2x}{2\sqrt{x^2-1}}}{x^2-1}\\ &=\frac{1}{\sqrt{x^2-1}}-\frac{x^2}{\sqrt{x^2-1}(x^2-1)}\\ &=-\frac{1}{\sqrt{x^2-1}(x^2-1)} \end{aligned}


44. ddxcos(arcsinx)\frac{d}{dx} cos(arcsinx)

ddxcos(arcsinx)=sin(arcsinx)11x2=x1x2 \begin{aligned} &\frac{d}{dx} cos(arcsinx)\\ &=-sin(arcsinx)\frac{1}{\sqrt{1-x^2}}\\ &=-\frac{x}{\sqrt{1-x^2}} \end{aligned}


45. ddxln(x2+3x+5)\frac{d}{dx} ln(x^2 + 3x + 5)

ddxln(x2+3x+5)=2x+3x2+3x+5 \begin{aligned} &\frac{d}{dx} ln(x^2 + 3x + 5)\\ &=\frac{2x+3}{x^2 + 3x + 5} \end{aligned}


46. ddx(arctan(4x))2\frac{d}{dx}(arctan(4x))^2

ddx(arctan(4x))2=2arctan(4x)41+16x2=8tan14x1+16x2 \begin{aligned} &\frac{d}{dx}(arctan(4x))^2\\ &=2arctan(4x)\frac{4}{1+16x^2}\\ &=\frac{8\tan^{-1}{4x}}{1+16x^2} \end{aligned}


47. ddxcubert(x2)\frac{d}{dx}cubert(x^2)

ddxx23=ddxx23=23x13=23x3 \begin{aligned} &\frac{d}{dx}\sqrt[3]{x^2}=\frac{d}{dx}x^{\frac{2}{3}}\\ &=\frac{2}{3}x^{-\frac{1}{3}}=\frac{2}{3\sqrt[3]{x}} \end{aligned}


48. ddxsin(sqrt(x)lnx)\frac{d}{dx}sin(sqrt(x) lnx)

ddxsin(xlnx)=cos(xlnx)(12xlnx+x1x)=cos(xlnx)ln(x)x+2x2x \begin{aligned} &\frac{d}{dx}sin(\sqrt{x} lnx)\\ &=cos(\sqrt{x} lnx)(\frac{1}{2\sqrt x}lnx+\sqrt x \frac{1}{x})\\ &=cos(\sqrt{x} lnx)\frac{ln(x)\sqrt{x}+2\sqrt x}{2x} \end{aligned}


49. ddxcsc(x2)\frac{d}{dx}csc(x^2)

ddxcsc(x2)=csc(x2)cot(x2)2x=2xcsc(x2)cot(x2)cf)ddxcsc2x=2cscx(cscxcotx)=2csc2xcotx \begin{aligned} &\frac{d}{dx}csc(x^2)=-csc(x^2)cot(x^2)2x\\ &=-2xcsc(x^2)cot(x^2)\\ &cf) \frac{d}{dx}csc^2x=2cscx(-cscxcotx)\\ &=-2csc^2xcotx\\ \end{aligned}


50. ddx(x21)/lnx\frac{d}{dx}(x^2-1)/lnx

ddxx21lnx=2xlnx((x21)1x)(lnx)2=2xlnxx+(1/x)(lnx)2 \begin{aligned} &\frac{d}{dx}\frac{x^2-1}{lnx}=\frac{2xlnx-((x^2-1)\frac{1}{x})}{(lnx)^2}\\ &=\frac{2xlnx-x+(1/x)}{(lnx)^2} \end{aligned}



Author: crazyj7@gmail.com

'Math' 카테고리의 다른 글

derivatie100 [51-60]  (0) 2019.11.18
D operator  (0) 2019.11.07
derivative100 [31-40]  (0) 2019.11.05
derivative100 [21-30]  (0) 2019.11.04
derivative100 [11-20]  (0) 2019.10.31
반응형
derivative_br_31

31. d2dx219sec(3x)\frac{d^2}{dx^2}\frac{1}{9} sec(3x)

d2dx219sec(3x)=19d2dx2sec(3x)=13ddxsec(3x)tan(3x)=sec(3x)tan(3x)tan(3x)+sec(3x)sec2(3x)=sec(3x)(tan2(3x)+sec2(3x)) \begin{aligned} &\frac{d^2}{dx^2}\frac{1}{9} sec(3x)\\ &=\frac{1}{9}\frac{d^2}{dx^2} sec(3x)=\frac{1}{3}\frac{d}{dx}sec(3x)tan(3x)\\ &=sec(3x)tan(3x)tan(3x)+sec(3x)sec^2(3x)\\ &=sec(3x)(tan^2(3x)+sec^2(3x))\\ \end{aligned}


32. d2dx2(x+1)/sqrt(x)\frac{d^2}{dx^2} (x+1)/sqrt(x)

d2dx2x+1x=ddxx(x+1)12xx=ddxx2x2xx=ddxxxx2x2=12ddxx12x32=14x32+34x52=3x4x52 \begin{aligned} &\frac{d^2}{dx^2} \frac{x+1}{\sqrt x} \\ &=\frac{d}{dx}\frac{\sqrt x-(x+1)\frac{1}{2\sqrt x} }{x}=\frac{d}{dx}\frac{\frac{\sqrt x}{2}-\frac{\sqrt x}{2x}}{x}\\ &=\frac{d}{dx}\frac{x\sqrt x -\sqrt x }{2x^2}= \frac{1}{2}\frac{d}{dx} x^{-\frac{1}{2}}-x^{-\frac{3}{2}}\\ &=-\frac{1}{4}x^{-\frac{3}{2}}+\frac{3}{4}x^{-\frac{5}{2}}\\ &=\frac{3-x}{4x^{\frac{5}{2}}} \end{aligned}


33. d2dx2arcsin(x2)\frac{d^2}{dx^2}arcsin(x^2)

d2dx2arcsin(x2)=ddx2x1x4=21x42x4x321x41x4=21x41x4+4x41x41x4=2+2x4(1x4)3/2 \begin{aligned} &\frac{d^2}{dx^2}arcsin(x^2) \\ &=\frac{d}{dx} \frac{2x}{\sqrt{1-x^4}}=\frac{2\sqrt{1-x^4}-2x\frac{-4x^3}{2\sqrt{1-x^4}}}{1-x^4}\\ &=\frac{2\frac{1-x^4}{\sqrt{1-x^4}}+\frac{4x^4}{\sqrt{1-x^4}}}{1-x^4}\\ &=\frac{2+2x^4}{(1-x^4)^{3/2}} \end{aligned}


34. d2dx21/(1+cosx)\frac{d^2}{dx^2}1/(1+cosx)

d2dx211+cosx=ddxsinx(1+cosx)2=cosx(1+cosx)2+sinx2(1+cosx)sinx(1+cosx)4=A=cosx+2cos2x+cos3x+2sin2x+2sin2xcosx(1+cosx)4=2+cosx(1+cos2x+2sin2x)(1+cosx)4=2+cosx(2+sin2x)(1+cosx)4=2+cosx(3cos2x)(1+cosx)4=2+3cosxcos3x(1+cosx)4A=cosx(1+cosx)+2sin2x(1+cosx)3=cosx+sin2x+1(1+cosx)3 \begin{aligned} &\frac{d^2}{dx^2} \frac{1}{1+cosx} \\ &=\frac{d}{dx} \frac{sin x}{(1+cos x)^2}=\frac{cos x(1+cosx)^2+sinx2(1+cosx)sinx}{(1+cos x)^4}\\ &=A\\ &=\frac{cosx+2cos^2x+cos^3x+2sin^2x+2sin^2xcosx}{(1+cosx)^4}\\ &=\frac{2+cosx(1+cos^2x+2sin^2x)}{(1+cosx)^4}\\ &=\frac{2+cosx(2+sin^2x)}{(1+cosx)^4}\\ &=\frac{2+cosx(3-cos^2x)}{(1+cosx)^4}=\frac{2+3cosx-cos^3x}{(1+cosx)^4}\\ &A=\frac{cosx(1+cosx)+2sin^2x}{(1+cosx)^3}=\frac{cosx+sin^2x+1}{(1+cosx)^3} \end{aligned}


35. d2dx2(x)arctan(x)\frac{d^2}{dx^2}(x)arctan(x)

d2dx2(x)arctan(x)=ddxarctan(x)+x11+x2=11+x2+11+x2x(1+x2)22x=21+x22x2(1+x2)2=2+2x22x2(1+x2)2=2(1+x2)2 \begin{aligned} &\frac{d^2}{dx^2}(x)arctan(x) \\ &=\frac{d}{dx}arctan(x)+x\frac{1}{1+x^2}\\ &=\frac{1}{1+x^2}+\frac{1}{1+x^2}-x(1+x^2)^{-2}2x\\ &=\frac{2}{1+x^2}-\frac{2x^2}{(1+x^2)^2}\\ &=\frac{2+2x^2-2x^2}{(1+x^2)^2}=\frac{2}{(1+x^2)^2}\\ \end{aligned}


36. d2dx2x4lnx\frac{d^2}{dx^2}x^4 lnx

d2dx2x4lnx=ddx4x3lnx+x3=4(3x2)lnx+4x3(1/x)+3x2=12x2lnx+7x2 \begin{aligned} &\frac{d^2}{dx^2}x^4 lnx \\ &=\frac{d}{dx}4x^3lnx+x^3\\ &=4(3x^2)lnx+4x^3(1/x)+3x^2\\ &=12x^2lnx+7x^2 \end{aligned}


37. d2dx2ex2\frac{d^2}{dx^2}e^{-x^2}

d2dx2ex2=ddx2xex2=2ex22x(2xex2)=ex2(4x22) \begin{aligned} &\frac{d^2}{dx^2}e^{-x^2} \\ &=\frac{d}{dx} -2xe^{-x^2}=-2e^{-x^2}-2x(-2xe^{-x^2})\\ &=e^{-x^2}(4x^2-2) \end{aligned}


38. d2dx2cos(lnx)\frac{d^2}{dx^2}cos(lnx)

d2dx2cos(lnx)=ddxsin(lnx)1x=cos(lnx)1x1xsin(lnx)(1)1x2=1x2(sin(lnx)cos(lnx)) \begin{aligned} &\frac{d^2}{dx^2} cos(lnx) =\frac{d}{dx}-sin(lnx)\frac{1}{x}\\ &=-cos(lnx)\frac{1}{x}\frac{1}{x}-sin(lnx)(-1)\frac{1}{x^2}\\ &=\frac{1}{x^2}(sin(lnx)-cos(lnx)) \end{aligned}


39. d2dx2ln(cosx)\frac{d^2}{dx^2}ln(cosx)

d2dx2ln(cosx)=ddxsinxcosx=ddxtanx=sec2x \begin{aligned} &\frac{d^2}{dx^2} ln(cosx)=\frac{d}{dx}\frac{-sinx}{cosx}\\ &=\frac{d}{dx}-tanx=-sec^2x \end{aligned}


40. ddxsqrt(1x2)+(x)(arcsinx)\frac{d}{dx} sqrt(1-x^2) + (x)(arcsinx)

ddx1x2+(x)(arcsinx)=2x21x2+arcsinx+x11x2=arcsin(x) \begin{aligned} &\frac{d}{dx} \sqrt{1-x^2} + (x)(arcsinx) \\ &=\frac{-2x}{2\sqrt{1-x^2}}+arcsinx+x\frac{1}{\sqrt{1-x^2}}\\ &=arcsin(x) \end{aligned}


Author: crazyj7@gmail.com

'Math' 카테고리의 다른 글

D operator  (0) 2019.11.07
derivative100 [41-50]  (1) 2019.11.06
derivative100 [21-30]  (0) 2019.11.04
derivative100 [11-20]  (0) 2019.10.31
derivative100 [1-10]  (0) 2019.10.30

+ Recent posts