Webスクレイピング用のPythonツール
コンピュータサイエンスでは、WebスクレイピングとはWebサイトからデータを抽出することを意味します。この手法を使用すると、ウェブ上の非構造化データが構造化データに変換されます。
Python3で最も一般的なWebスクレイピングツールは-
です。- Urllib2
- リクエスト
- BeautifulSoup
- Lxml
- セレン
- MechanicalSoup
Urllib2 −このツールにはPythonがプリインストールされています。このモジュールは、URLを抽出するために使用されます。さまざまなプロトコル(FTP、HTTPなど)を使用してURLをフェッチするurlopen()関数を使用します。
サンプルコード
from urllib.request import urlopen my_html = urlopen("https://www.tutorialspoint.com/") print(my_html.read())
出力
b'<!DOCTYPE html<\r\n <!--[if IE 8]< <html class="ie ie8"< <![endif]--< \r\n<!--[if IE 9]< <html class="ie ie9"< <![endif]-->\r\n<!--[if gt IE 9]><!--< \r\n<html lang="en-US"< <!--<![endif]--< \r\n<head>\r\n<!-- Basic --< \r\n<meta charset="utf-8"< \r\n<title>Parallax Scrolling, Java Cryptography, YAML, Python Data Science, Java i18n, GitLab, TestRail, VersionOne, DBUtils, Common CLI, Seaborn, Ansible, LOLCODE, Current Affairs 2018, Apache Commons Collections</title< \r\n<meta name="Description" content="Parallax Scrolling, Java Cryptography, YAML, Python Data Science, Java i18n, GitLab, TestRail, VersionOne, DBUtils, Common CLI, Seaborn, Ansible, LOLCODE, Current Affairs 2018, Intellij Idea, Apache Commons Collections, Java 9, GSON, TestLink, Inter Process Communication (IPC), Logo, PySpark, Google Tag Manager, Free IFSC Code, SAP Workflow"/< \r\n<meta name="Keywords" content="Python Data Science, Java i18n, GitLab, TestRail, VersionOne, DBUtils, Common CLI, Seaborn, Ansible, LOLCODE, Gson, TestLink, Inter Process Communication (IPC), Logo"/<\r\n <meta http-equiv="X-UA-Compatible" content="IE=edge">\r\n<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=yes">\r\n<link href="https://cdn.muicss.com/mui-0.9.39/extra/mui-rem.min.css" rel="stylesheet" type="text/css" /<\r\n <link rel="stylesheet" href="/questions/css/home.css?v=3" /< \r\n <script src="/questions/js/jquery.min.js"< </script< \r\n<script src="/questions/js/fontawesome.js"< </script<\r\n <script src="https://cdn.muicss.com/mui-0.9.39/js/mui.min.js"< </script>\r\n </head>\r\n <body>\r\n <!-- Start of Body Content --> \r\n <div class="mui-appbar-home">\r\n <div class="mui-container">\r\n <div class="tp-primary-header mui-top-home">\r\n <a href="https://www.tutorialspoint.com/index.htm" target="_blank" title="TutorialsPoint - Home"> <i class="fa fa-home"> </i><span>Home</span></a>\r\n </div>\r\n <div class="tp-primary-header mui-top-qa">\r\n <a href="https://www.tutorialspoint.com/questions/index.php" target="_blank" title="Questions & Answers - The Best Technical Questions and Answers - TutorialsPoint"><i class="fa fa-location-arrow"></i> <span> Q/A</span></a>\r\n </div>\r\n <div class="tp-primary-header mui-top-tools">\r\n <a href="https://www.tutorialspoint.com/online_dev_tools.htm" target="_blank" title="Tools - Online Development and Testing Tools"> <i class="fa fa-cogs"></i><span>Tools</span></a>\r\n </div>\r\n <div class="tp-primary-header mui-top-coding-ground">\r\n <a href="https://www.tutorialspoint.com/codingground.htm" target="_blank" title="Coding Ground - Free Online IDE and Terminal"> <i class="fa fa-code"> </i> <span> Coding Ground </span> </a> \r\n </div>\r\n <div class="tp-primary-header mui-top-current-affairs">\r\n <a href="https://www.tutorialspoint.com/current_affairs/index.htm" target="_blank" title="Current Affairs - 2016, 2017 and 2018 | General Knowledge for Competitive Exams"><i class="fa fa-globe"> </i><span>Current Affairs</span> </a>\r\n </div>\r\n <div class="tp-primary-header mui-top-upsc">\r\n <a href="https://www.tutorialspoint.com/upsc_ias_exams.htm" target="_blank" title="UPSC IAS Exams Notes - TutorialsPoint"><i class="fa fa-user-tie"></i><span>UPSC Notes</span></a>\r\n </div>\r\n <div class="tp-primary-header mui-top-tutors">\r\n <a href="https://www.tutorialspoint.com/tutor_connect/index.php" target="_blank" title="Top Online Tutors - Tutor Connect"> <i class="fa fa-user"> </i> <span>Online Tutors</span> </a>\r\n </div>\r\n <div class="tp-primary-header mui-top-examples">\r\n ….
リクエスト −このモジュールはプリインストールされていないため、コマンドプロンプトでコマンドラインを記述する必要があります。リクエスト HTTP/1.1にリクエストを送信します。
pipインストールリクエスト
例
import requests # get URL my_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['Content-Type'])
出力
UTF-8 200 0:00:00.205727 https://www.tutorialspoint.com/ [] text/html; charset=UTF-8
BeautifulSoup −これは、さまざまなパーサーで使用される解析ライブラリです。 Pythonの標準ライブラリは、BeautifulSoupのデフォルトのパーサーを提供します。 HTMLページからデータを抽出するために使用されるパーサーツリーを構築します。
このモジュールをインストールするには、コマンドプロンプトにコマンドラインを記述します。
pip install beautifulsoup4
例
from bs4 import BeautifulSoup # importing requests import requests # get URL my_req = requests.get("https://www.tutorialspoint.com/") my_data = my_req.text my_soup = BeautifulSoup(my_data) for my_link in my_soup.find_all('a'): print(my_link.get('href'))
出力
https://www.tutorialspoint.com/index.htm https://www.tutorialspoint.com/questions/index.php https://www.tutorialspoint.com/online_dev_tools.htm https://www.tutorialspoint.com/codingground.htm https://www.tutorialspoint.com/current_affairs/index.htm https://www.tutorialspoint.com/upsc_ias_exams.htm https://www.tutorialspoint.com/tutor_connect/index.php https://www.tutorialspoint.com/programming_examples/ https://www.tutorialspoint.com/whiteboard.htm https://www.tutorialspoint.com/netmeeting.php https://www.tutorialspoint.com/articles/ https://www.tutorialspoint.com/index.htm https://www.tutorialspoint.com/tutorialslibrary.htm https://www.tutorialspoint.com/videotutorials/index.htm https://store.tutorialspoint.com https://www.tutorialspoint.com/html_online_training/index.asp https://www.tutorialspoint.com/css_online_training/index.asp https://www.tutorialspoint.com/3d_animation_online_training/index.asp https://www.tutorialspoint.com/swift_4_online_training/index.asp https://www.tutorialspoint.com/blockchain_online_training/index.asp https://www.tutorialspoint.com/reactjs_online_training/index.asp https://www.tutorialspoint.com/tutorialslibrary.htm https://www.tutorialspoint.com/computer_fundamentals/index.htm https://www.tutorialspoint.com/compiler_design/index.htm https://www.tutorialspoint.com/operating_system/index.htm https://www.tutorialspoint.com/data_structures_algorithms/index.htm https://www.tutorialspoint.com/dbms/index.htm https://www.tutorialspoint.com/data_communication_computer_network/index.htm https://www.tutorialspoint.com/academic_tutorials.htm https://www.tutorialspoint.com/html/index.htm https://www.tutorialspoint.com/css/index.htm https://www.tutorialspoint.com/javascript/index.htm https://www.tutorialspoint.com/php/index.htm https://www.tutorialspoint.com/angular4/index.htm https://www.tutorialspoint.com/mysql/index.htm https://www.tutorialspoint.com/web_development_tutorials.htm https://www.tutorialspoint.com/cprogramming/index.htm https://www.tutorialspoint.com/cplusplus/index.htm https://www.tutorialspoint.com/java8/index.htm https://www.tutorialspoint.com/python/index.htm https://www.tutorialspoint.com/scala/index.htm https://www.tutorialspoint.com/csharp/index.htm https://www.tutorialspoint.com/computer_programming_tutorials.htm https://www.tutorialspoint.com/java8/index.htm https://www.tutorialspoint.com/jdbc/index.htm https://www.tutorialspoint.com/servlets/index.htm https://www.tutorialspoint.com/spring/index.htm https://www.tutorialspoint.com/hibernate/index.htm https://www.tutorialspoint.com/swing/index.htm https://www.tutorialspoint.com/java_technology_tutorials.htm https://www.tutorialspoint.com/android/index.htm https://www.tutorialspoint.com/swift/index.htm https://www.tutorialspoint.com/ios/index.htm https://www.tutorialspoint.com/kotlin/index.htm https://www.tutorialspoint.com/react_native/index.htm https://www.tutorialspoint.com/xamarin/index.htm https://www.tutorialspoint.com/mobile_development_tutorials.htm https://www.tutorialspoint.com/mongodb/index.htm https://www.tutorialspoint.com/plsql/index.htm https://www.tutorialspoint.com/sql/index.htm https://www.tutorialspoint.com/db2/index.htm https://www.tutorialspoint.com/mysql/index.htm https://www.tutorialspoint.com/memcached/index.htm https://www.tutorialspoint.com/database_tutorials.htm https://www.tutorialspoint.com/asp.net/index.htm https://www.tutorialspoint.com/entity_framework/index.htm https://www.tutorialspoint.com/vb.net/index.htm https://www.tutorialspoint.com/ms_project/index.htm https://www.tutorialspoint.com/excel/index.htm https://www.tutorialspoint.com/word/index.htm https://www.tutorialspoint.com/microsoft_technologies_tutorials.htm https://www.tutorialspoint.com/big_data_analytics/index.htm https://www.tutorialspoint.com/hadoop/index.htm https://www.tutorialspoint.com/sas/index.htm https://www.tutorialspoint.com/qlikview/index.htm https://www.tutorialspoint.com/power_bi/index.htm https://www.tutorialspoint.com/tableau/index.htm https://www.tutorialspoint.com/big_data_tutorials.htm https://www.tutorialspoint.com/tutorialslibrary.htm https://www.tutorialspoint.com/codingground.htm https://www.tutorialspoint.com/coding_platform_for_websites.htm https://www.tutorialspoint.com/developers_best_practices/index.htm https://www.tutorialspoint.com/effective_resume_writing.htm https://www.tutorialspoint.com/computer_glossary.htm https://www.tutorialspoint.com/computer_whoiswho.htm https://www.tutorialspoint.com/questions_and_answers.htm https://www.tutorialspoint.com/multi_language_tutorials.htm https://itunes.apple.com/us/app/tutorials-point/id914891263?ls=1&mt=8 https://play.google.com/store/apps/details?id=com.tutorialspoint.onlineviewer https://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_terms_of_use.htm https://www.tutorialspoint.com/articles/ https://www.tutorialspoint.com/online_dev_tools.htm https://www.tutorialspoint.com/free_web_graphics.htm https://www.tutorialspoint.com/online_file_conversion.htm https://www.tutorialspoint.com/shared-tutorials.php https://www.tutorialspoint.com/netmeeting.php https://www.tutorialspoint.com/free_online_whiteboard.htm https://www.tutorialspoint.com https://www.facebook.com/tutorialspointindia https://plus.google.com/u/0/+tutorialspoint https://www.twitter.com/tutorialspoint https://www.linkedin.com/company/tutorialspoint https://www.youtube.com/channel/UCVLbzhxVTiTLiVKeGV7WEBg https://www.tutorialspoint.com/index.htm /about/about_privacy.htm#cookies /about/faq.htm /about/about_helping.htm /about/contact_us.htm>
Lxml −これは、解析ライブラリ、高性能、本番品質のHTMLおよびXML解析ライブラリです。高品質で最高速度が必要な場合は、このライブラリを使用する必要があります。 Webサイトからデータを抽出するためのモジュールがたくさんあります。
インストールについては、コマンドプロンプトで記述します
pip install lxml
例
from lxml import etree my_root_elem = etree.Element('html') etree.SubElement(my_root_elem, 'head') etree.SubElement(my_root_elem, 'title') etree.SubElement(my_root_elem, 'body') print(etree.tostring(my_root_elem, pretty_print = True).decode("utf-8"))
出力
<html> <head/> <title/> <body/> </html>
セレン −これはブラウザの自動化ツールであり、Webドライバとも呼ばれます。 Webサイトを使用する場合、ボタンをクリックしたりページをスクロールしたりする場合など、しばらく待たなければならないことがあります。この場合、Seleniumが必要になります。
セレンをインストールするには、このコマンドを使用します
pip install selenium
例
from selenium import webdriver my_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)
出力
MechanicalSoup −これは、Webサイトとの対話を自動化するためのもう1つのPythonライブラリです。これを使用することで、Cookieを自動的に保存して送信したり、リダイレクトをたどったり、リンクをたどったり、フォームを送信したりできます。 JavaScriptは実行しません。
インストールには、次のコマンドを使用できます
pip install MechanicalSoup
例
import mechanicalsoup my_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("forms") print(my_va) my_value1 = my_browser.get_url() print(my_value1)
-
31 の最高の Web スクレイピング ツール
コーディングに慣れていない人にとって、Web スクレイパーを作成するのは難しいかもしれません。幸いなことに、Web スクレイピング ソフトウェアは、プログラマーと非プログラマーの両方が利用できます。 Web スクレイピング ソフトウェアは、Web サイトから関連データを取得するために特別に設計されたソフトウェアです。これらのツールは、何らかの方法でインターネットからデータを取得したい人にとって有益です。この情報は、コンピューター上のローカル ファイルまたはデータベースに記録されます。 Web用のデータを自律的に収集する技術です。 31 の最高の無料 Web スクレイピング ツールのリストを紹介
-
プロフェッショナル向けの最高の Web デザイン ツール
市場には、有料および無料のプロフェッショナルな Web デザイン ツールが数多くあります。彼らは仕事を手間がかからず簡単にするので、デザイナーのクラッチとして機能します.このような使いやすいツールを探している人のために、Web デザイン ツールの広範なリストをまとめました。 HTML、C++、JavaScript などのプログラミング言語などのコンポーネントは、ウェブサイトの作成において重要な役割を果たしますが、デザイン ツールはそれらに決定的な仕上げと外観を与えるものです。オンラインで入手できる最高の Web デザイン ツールをいくつか見てみましょう。 最高のプロフェッショナル ウェブ デザ