Python
 Computer >> コンピューター >  >> プログラミング >> Python

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)

出力

Webスクレイピング用のPythonツール

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)

  1. 31 の最高の Web スクレイピング ツール

    コーディングに慣れていない人にとって、Web スクレイパーを作成するのは難しいかもしれません。幸いなことに、Web スクレイピング ソフトウェアは、プログラマーと非プログラマーの両方が利用できます。 Web スクレイピング ソフトウェアは、Web サイトから関連データを取得するために特別に設計されたソフトウェアです。これらのツールは、何らかの方法でインターネットからデータを取得したい人にとって有益です。この情報は、コンピューター上のローカル ファイルまたはデータベースに記録されます。 Web用のデータを自律的に収集する技術です。 31 の最高の無料 Web スクレイピング ツールのリストを紹介

  2. プロフェッショナル向けの最高の Web デザイン ツール

    市場には、有料および無料のプロフェッショナルな Web デザイン ツールが数多くあります。彼らは仕事を手間がかからず簡単にするので、デザイナーのクラッチとして機能します.このような使いやすいツールを探している人のために、Web デザイン ツールの広範なリストをまとめました。 HTML、C++、JavaScript などのプログラミング言語などのコンポーネントは、ウェブサイトの作成において重要な役割を果たしますが、デザイン ツールはそれらに決定的な仕上げと外観を与えるものです。オンラインで入手できる最高の Web デザイン ツールをいくつか見てみましょう。 最高のプロフェッショナル ウェブ デザ