Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

웹 스크래핑을 위한 Python 도구

<시간/>

컴퓨터 과학에서 웹 스크래핑은 웹사이트에서 데이터를 추출하는 것을 의미합니다. 이 기술을 사용하여 웹의 비정형 데이터를 정형 데이터로 변환합니다.

Python3에서 가장 일반적인 웹 스크래핑 도구는 -

  • Urllib2
  • 요청
  • 뷰티풀 수프
  • Lxml
  • 셀레늄
  • 기계식 수프

Urllib2 − 이 도구는 Python과 함께 사전 설치되어 있습니다. 이 모듈은 URL을 추출하는 데 사용됩니다. urlopen() 함수를 사용하여 다른 프로토콜(FTP, HTTP 등)을 사용하여 URL을 가져옵니다.

예시 코드

urllib.request에서 가져오기 urlopenmy_html =urlopen("https://www.tutorialspoint.com/")print(my_html.read())

출력

b'\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\nQ/A\r\n
\r\n
\r\n도구 \ r\n
\r\n \r\n
\r\n시사 \r\n
\r\n
\r\nUPSC 노트 \r\n
\r\n \r\n
\r\n….

요청 − 이 모듈은 사전 설치되어 있지 않으므로 명령 프롬프트에서 명령줄을 작성해야 합니다.요청 HTTP/1.1에 요청을 보냅니다.

pip 설치 요청

예시

요청 가져오기# get URLmy_req =requests.get('https://www.tutorialspoint.com/') print(my_req.encoding) print(my_req.status_code) print(my_req.elapsed) print(my_req.url) print(my_req.history)print(my_req.headers['콘텐츠 유형'])

출력

UTF-82000:00:00.205727https://www.tutorialspoint.com/[]text/html; charset=UTF-8

뷰티풀 수프 - 이것은 다른 파서에서 사용되는 파싱 라이브러리입니다. Python의 표준 라이브러리는 BeautifulSoup의 기본 파서를 제공합니다. HTML 페이지에서 데이터를 추출하는 데 사용되는 파서 트리를 구축합니다.

이 모듈을 설치하기 위해 명령 프롬프트에 명령줄을 작성합니다.

핍 설치 beautifulsoup4

예시

bs4 import BeautifulSoup# 가져오기 요청 가져오기 요청# get URLmy_req =requests.get("https://www.tutorialspoint.com/")my_data =my_req.textmy_soup =BeautifulSoup(my_data)for my_soup.find_all(' a'):print(my_link.get('href'))

출력

https://www.tutorialspoint.com/index.htmhttps://www.tutorialspoint.com/questions/index.phphttps://www.tutorialspoint.com/online_dev_tools.htmhttps://www.tutorialspoint.com /codingground.htmhttps://www.tutorialspoint.com/current_affairs/index.htmhttps://www.tutorialspoint.com/upsc_ias_exams.htmhttps://www.tutorialspoint.com/tutor_connect/index.phphttps://www.tutorialspoint .com/programming_examples/https://www.tutorialspoint.com/whiteboard.htmhttps://www.tutorialspoint.com/netmeeting.phphttps://www.tutorialspoint.com/articles/https://www.tutorialspoint.com /index.htmhttps://www.tutorialspoint.com/tutorialslibrary.htmhttps://www.tutorialspoint.com/videotutorials/index.htmhttps://store.tutorialspoint.comhttps://www.tutorialspoint.com/html_online_training/index .asphttps://www.tutorialspoint.com/css_online_training/index.asphttps://www.tutorialspoint.com/3d_animation_online_training/index.asphttps://www.tutorialspoint.com/swift_4_online_training/index.asphttps://www.tutorialspoint .com/blo ckchain_online_training/index.asphttps://www.tutorialspoint.com/reactjs_online_training/index.asphttps://www.tutorialspoint.com/tutorialslibrary.htmhttps://www.tutorialspoint.com/computer_fundamentals/index.htmhttps://www. tutorialspoint.com/compiler_design/index.htmhttps://www.tutorialspoint.com/operating_system/index.htmhttps://www.tutorialspoint.com/data_structures_algorithms/index.htmhttps://www.tutorialspoint.com/dbms/index. htmhttps://www.tutorialspoint.com/data_communication_computer_network/index.htmhttps://www.tutorialspoint.com/academic_tutorials.htmhttps://www.tutorialspoint.com/html/index.htmhttps://www.tutorialspoint.com/ CSS/index.htmhttps://www.tutorialspoint.com/javascript/index.htmhttps://www.tutorialspoint.com/php/index.htmhttps://www.tutorialspoint.com/angular4/index.htmhttps:// www.tutorialspoint.com/mysql/index.htmhttps://www.tutorialspoint.com/web_development_tutorials.htmhttps://www.tutorialspoint.com/cprogramming/index.htmhttps://www.tutorialspoint.com/cplusplus/ind ex.htmhttps://www.tutorialspoint.com/java8/index.htmhttps://www.tutorialspoint.com/python/index.htmhttps://www.tutorialspoint.com/scala/index.htmhttps://www. tutorialspoint.com/csharp/index.htmhttps://www.tutorialspoint.com/computer_programming_tutorials.htmhttps://www.tutorialspoint.com/java8/index.htmhttps://www.tutorialspoint.com/jdbc/index.htmhttps://www.tutorialspoint.com/servlets/index.htmhttps://www.tutorialspoint.com/spring/index.htmhttps://www.tutorialspoint.com/hibernate/index.htmhttps://www.tutorialspoint.com/ 스윙/index.htmhttps://www.tutorialspoint.com/java_technology_tutorials.htmhttps://www.tutorialspoint.com/android/index.htmhttps://www.tutorialspoint.com/swift/index.htmhttps://www. tutorialspoint.com/ios/index.htmhttps://www.tutorialspoint.com/kotlin/index.htmhttps://www.tutorialspoint.com/react_native/index.htmhttps://www.tutorialspoint.com/xamarin/index. htmhttps://www.tutorialspoint.com/mobile_development_tutorials.htmhttps://www.tutorialspoint.com/mongodb/index.htmhtt ps://www.tutorialspoint.com/plsql/index.htmhttps://www.tutorialspoint.com/sql/index.htmhttps://www.tutorialspoint.com/db2/index.htmhttps://www.tutorialspoint. com/mysql/index.htmhttps://www.tutorialspoint.com/memcached/index.htmhttps://www.tutorialspoint.com/database_tutorials.htmhttps://www.tutorialspoint.com/asp.net/index.htmhttps://www.tutorialspoint.com/entity_framework/index.htmhttps://www.tutorialspoint.com/vb.net/index.htmhttps://www.tutorialspoint.com/ms_project/index.htmhttps://www.tutorialspoint. com/excel/index.htmhttps://www.tutorialspoint.com/word/index.htmhttps://www.tutorialspoint.com/microsoft_technologies_tutorials.htmhttps://www.tutorialspoint.com/big_data_analytics/index.htmhttps:// www.tutorialspoint.com/hadoop/index.htmhttps://www.tutorialspoint.com/sas/index.htmhttps://www.tutorialspoint.com/qlikview/index.htmhttps://www.tutorialspoint.com/power_bi/ index.htmhttps://www.tutorialspoint.com/tableau/index.htmhttps://www.tutorialspoint.com/big_data_tutorials.htmhttps://ww w.tutorialspoint.com/tutorialslibrary.htmhttps://www.tutorialspoint.com/codingground.htmhttps://www.tutorialspoint.com/coding_platform_for_websites.htmhttps://www.tutorialspoint.com/developers_best_practices/index.htmhttps:// www.tutorialspoint.com/effective_resume_writing.htmhttps://www.tutorialspoint.com/computer_glossary.htmhttps://www.tutorialspoint.com/computer_whoiswho.htmhttps://www.tutorialspoint.com/questions_and_answers.htmhttps://www. tutorialspoint.com/multi_language_tutorials.htmhttps://itunes.apple.com/us/app/tutorials-point/id914891263?ls=1&mt=8https://play.google.com/store/apps/details?id=com. tutorialspoint.onlineviewerhttps://www.windowsphone.com/s?appid=91249671-7184-4ad6-8a5f-d11847946b09/about/index.htm/about/about_team.htm/about/about_careers.htm/about/about_privacy.htm/about/about_privacy. about/about_terms_of_use.htmhttps://www.tutorialspoint.com/articles/https://www.tutorialspoint.com/online_dev_tools.htmhttps://www.tutorialspoint.com/free_web_graphics.htmhttps://www.tutorialspoint.com /online_file_conversion.htmhttps://www.tutorialspoint.com/shared-tutorials.phphttps://www.tutorialspoint.com/netmeeting.phphttps://www.tutorialspoint.com/free_online_whiteboard.htmhttps://www.tutorialspoint.comhttps ://www.facebook.com/tutorialspointindiahttps://plus.google.com/u/0/+tutorialspointhttps://www.twitter.com/tutorialspointhttps://www.linkedin.com/company/tutorialspointhttps:// www.youtube.com/channel/UCVLbzhxVTiTLiVKeGV7WEBghttps://www.tutorialspoint.com/index.htm/about/about_privacy.htm#cookies/about/faq.htm/about/about_helping.htm/about/contact_us.htm

Lxml - 이것은 파싱 라이브러리, 고성능, 생산 품질의 HTML 및 XML 파싱 라이브러리입니다. 고품질의 최대 속도를 원한다면 이 라이브러리를 사용해야 합니다. 웹 사이트에서 데이터를 추출할 수 있는 많은 모듈이 있습니다.

설치를 위해 명령 프롬프트

로 작성합니다.

pip 설치 lxml

예시

lxml에서 가져오기 etreemy_root_elem =etree.Element('html')etree.SubElement(my_root_elem, 'head')etree.SubElement(my_root_elem, 'title')etree.SubElement(my_root_elem, '본문')print(etree. tostring(my_root_elem, pretty_print =True).decode("utf-8"))

출력

<body/></html></pre> <p>
 <strong>셀레늄</strong> − 이것은 웹 드라이버라고도 하는 자동화 브라우저 도구입니다. 웹사이트를 사용할 때, 예를 들어 버튼을 클릭하거나 페이지를 스크롤할 때와 같이 때때로 Selenium이 필요한 시점을 기다려야 하는 경우가 있습니다.</P> <p>
 셀레늄을 설치하기 위해 이 명령을 사용합니다.</P> <p>
 pip 설치 셀레늄</P> <h2>예시</h2> <pre>셀레늄 가져오기 webdrivermy_path_to_chromedriver ='/Users/Admin/Desktop/chromedriver'my_browser =webdriver.Chrome(executable_path =my_path_to_chromedriver)my_url ='https://www.tutorialspoint.com/'my_browser.get(my_url)</사전> <h2>출력</h2> <p>
 <img loading='lazy' alt='웹 스크래핑을 위한 Python 도구 ' src="/article/uploadfiles/202204/2022040701542865.jpg" /></P> <p>
 <strong>기계식 수프</strong> - 이것은 웹사이트와의 상호작용을 자동화하기 위한 또 다른 Python 라이브러리입니다. 이를 사용하여 쿠키를 자동으로 저장 및 보낼 수 있으며 리디렉션을 따르고 링크를 따르고 양식을 제출할 수 있습니다. 자바스크립트는 하지 않습니다.</P> <p>
 설치를 위해 다음 명령을 사용할 수 있습니다.</P> <p>
 핍 설치 MechanicalSoup</P> <h2>예시</h2> <pre>mechanicalsoupmy_browser 가져오기 =Mechanicalsoup.StatefulBrowser()my_value =my_browser.open("https://www.tutorialspoint.com/")print(my_value)my_val =my_browser.get_url()print(my_val)my_va =my_browser.follow_link ("양식")print(my_va)my_value1 =my_browser.get_url()print(my_value1)</pre> <br>
                </article>

                <div class="ad5">

<script language='javascript' src='https://kr.wsxdn.com/css/ad/kr2.js'></script>
                </div>

                <div id="turn-page" class="text-over">
                   <a class='LinkPrevArticle' href='https://kr.wsxdn.com/bz024t/ge248y/1002106443.html' >Python openpyxl 모듈을 사용하여 Excel 파일 읽기 및 쓰기 </a>        
                   <a class='LinkNextArticle' href='https://kr.wsxdn.com/bz024t/ge248y/1002106445.html'  >가위바위보 게임을 구현하는 파이썬 프로그램 </a>      
                 </div>

            </section>
    
            <aside class="box-r box4-r">
    
                <h3>Python</h3>

                <ul>
                    
			<li>
                        <a href="https://kr.wsxdn.com/bz024t/ge248y/1002103141.html" class="f-start">
                            <em></em>
                            <p class="r-over r-over-2" title="Python에서 None Tuple 확인  ">Python에서 None Tuple 확인 </p>
                        </a>
                    </li><li>
                        <a href="https://kr.wsxdn.com/bz024t/ge248y/1002105935.html" class="f-start">
                            <em></em>
                            <p class="r-over r-over-2" title="Scrapy로 웹 스크래핑을 구현하는 Python  ">Scrapy로 웹 스크래핑을 구현하는 Python </p>
                        </a>
                    </li><li>
                        <a href="https://kr.wsxdn.com/bz024t/ge248y/1002105955.html" class="f-start">
                            <em></em>
                            <p class="r-over r-over-2" title="Scrapy를 사용하여 Python에서 웹 스크래핑 구현  ">Scrapy를 사용하여 Python에서 웹 스크래핑 구현 </p>
                        </a>
                    </li><li>
                        <a href="https://kr.wsxdn.com/bz024t/ge248y/1002106157.html" class="f-start">
                            <em></em>
                            <p class="r-over r-over-2" title="BeautifulSoup을 사용하여 Python에서 웹 스크래핑을 구현하시겠습니까?  ">BeautifulSoup을 사용하여 Python에서 웹 스크래핑을 구현하시겠습니까? </p>
                        </a>
                    </li><li>
                        <a href="https://kr.wsxdn.com/bz024t/ge248y/1002106231.html" class="f-start">
                            <em></em>
                            <p class="r-over r-over-2" title="기사 스크랩 및 큐레이션을 위한 Python 모듈 신문?  ">기사 스크랩 및 큐레이션을 위한 Python 모듈 신문? </p>
                        </a>
                    </li>
                                    </ul>
            <h3 class="h3-2">컴퓨터</h3>

                <ul>
                                    
		<li>
                        <a href="https://kr.wsxdn.com/bz024t/ge248y/1002105425.html" class="f-start">
                            <em></em>
                            <p class="r-over r-over-2" title="파이썬에서 CGI란 무엇입니까?  ">파이썬에서 CGI란 무엇입니까? </p>
                        </a>
                    </li>
<li>
                        <a href="https://kr.wsxdn.com/bz024t/ge248y/1002105762.html" class="f-start">
                            <em></em>
                            <p class="r-over r-over-2" title="Stooge Sort를 위한 Python 프로그램  ">Stooge Sort를 위한 Python 프로그램 </p>
                        </a>
                    </li>
<li>
                        <a href="https://kr.wsxdn.com/bz024t/ge248y/1002105763.html" class="f-start">
                            <em></em>
                            <p class="r-over r-over-2" title="에라토스테네스의 체를 위한 파이썬 프로그램  ">에라토스테네스의 체를 위한 파이썬 프로그램 </p>
                        </a>
                    </li>
<li>
                        <a href="https://kr.wsxdn.com/bz024t/ge248y/1002105766.html" class="f-start">
                            <em></em>
                            <p class="r-over r-over-2" title="QuickSort용 Python 프로그램  ">QuickSort용 Python 프로그램 </p>
                        </a>
                    </li>
<li>
                        <a href="https://kr.wsxdn.com/bz024t/ge248y/1002105770.html" class="f-start">
                            <em></em>
                            <p class="r-over r-over-2" title="병합 정렬을 위한 Python 프로그램  ">병합 정렬을 위한 Python 프로그램 </p>
                        </a>
                    </li>

                </ul> 
            </aside>
    
        </section>


    </div>
 <ul class="types box4-1 container f-center">
            <li><a class='childclass' href='https://kr.wsxdn.com/bz024t/ol244g/' target="_self">C 프로그래밍</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/fd245y/' target="_self">C++</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/xv246p/' target="_self">Redis</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/ig247a/' target="_self">BASH 프로그래밍</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/ge248y/' target="_self">Python</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/jh249b/' target="_self">Java</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/yw250q/' target="_self">데이터 베이스</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/hf251z/' target="_self">HTML</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/ig252a/' target="_self">JavaScript</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/qo253i/' target="_self">프로그램 작성</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/vs254n/' target="_self">CSS</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/fd255x/' target="_self">Ruby</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/ay256s/' target="_self">SQL</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/yw257q/' target="_self">IOS</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/wu258o/' target="_self">Android</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/nl259f/' target="_self">MongoDB</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/mk260e/' target="_self">MySQL</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/ax261s/' target="_self">C#</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/bz265t/' target="_self">PHP</a></li>
<li><a class='childclass' href='https://kr.wsxdn.com/bz024t/zx271r/' target="_self">SQL Server</a></li>

        </ul>
    <footer>
        <section class="container">
            <div class="footer-msg">
                
                <span class="container f-center">
 <p class=krf>저작권 © <a href="https://kr.wsxdn.com">https://kr.wsxdn.com</a> 모든 권리 보유</p>
 </span>
            </div>
        </section>
    </footer>


</body>

</html>