{"id":2691,"date":"2020-03-07T17:49:55","date_gmt":"2020-03-07T08:49:55","guid":{"rendered":"http:\/\/daily.belltail.jp\/?p=2691"},"modified":"2020-03-07T21:34:52","modified_gmt":"2020-03-07T12:34:52","slug":"web%e3%82%a2%e3%83%97%e3%83%aa%e7%b5%84%e3%81%bf%e8%be%bc%e3%81%bf%e7%9b%ae%e7%9a%84%e3%81%a7selenium-webdriver-headless-chromium-firefox%e3%82%92%e4%bd%bf%e3%81%86%e3%81%a8%e3%81%8d%e3%81%ae","status":"publish","type":"post","link":"https:\/\/daily.belltail.jp\/?p=2691","title":{"rendered":"Web\u30a2\u30d7\u30ea\u7d44\u307f\u8fbc\u307f\u76ee\u7684\u3067Selenium WebDriver + Headless Chromium\/Firefox\u3092\u4f7f\u3046\u3068\u304d\u306e\u96d1\u591a\u306a\u77e5\u898b"},"content":{"rendered":"<p>\u9b5a\u985e\u306f\u4e00\u822c\u306b\u306f\u5909\u6e29\u52d5\u7269\u3068\u3055\u308c\u307e\u3059\u304c\u3001\u30de\u30b0\u30ed\u306a\u3069\u4e00\u90e8\u306e\u9b5a\u306f\u4f53\u6e29\u3092\u4e00\u5b9a\u306b\u4fdd\u3061\u6d3b\u52d5\u80fd\u529b\u3092\u7dad\u6301\u3059\u308b\u4ed5\u7d44\u307f\u304c\u3042\u308a\u4e8b\u5b9f\u4e0a\u306e\u6052\u6e29\u52d5\u7269\u3068\u3057\u3066\u306e\u7279\u5fb4\u3092\u3082\u3064\u3053\u3068\u3082\u3042\u308b\u306e\u3060\u305d\u3046\u3067\u3059\u3002<\/p>\n<p>Python\u30d9\u30fc\u30b9\u306eWeb\u30a2\u30d7\u30ea\u306bHeadless Chrome(Chromium)\u3084Headless Firefox\u3092\u7d44\u307f\u8fbc\u307fSelenium\u3067\u3053\u308c\u3089\u3092\u5236\u5fa1\u3057\u3088\u3046\u3068\u3057\u305f\u3068\u304d\u3001\u7d30\u304b\u3044\u3053\u3068\u306b\u3044\u308d\u3044\u308d\u3068\u30cf\u30de\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u3002\u516c\u5f0f\u30b5\u30f3\u30d7\u30eb\u3042\u308b\u3044\u306fQiita\u8a18\u4e8b\u306a\u3069\u3092\u542b\u3081\u30011\u3064\u306e\u4f8b\u3067\u81ea\u5206\u306e\u624b\u5143\u306e\u74b0\u5883\u3067\u3061\u3083\u3093\u3068\u52d5\u304f\u3088\u3046\u306a\u3082\u306e\u304c\u307e\u3068\u307e\u3063\u3066\u3044\u308b\u3082\u306e\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u3001\u77e5\u898b\u3092\u307e\u3068\u3081\u307e\u3057\u305f\u3002<br \/>\nHeroku\u3042\u308b\u3044\u306fDokku\u306e\u3088\u3046\u306a\u74b0\u5883\u3001\u3059\u306a\u308f\u3061Ubuntu\u30d9\u30fc\u30b9\u3067Docker\u30d9\u30fc\u30b9\u3067\u3042\u308a\u3001\u8a08\u7b97\u30ea\u30bd\u30fc\u30b9\u304c\u6bd4\u8f03\u7684\u8ca7\u5f31\u306a\u74b0\u5883\u3092\u60f3\u5b9a\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u958b\u767a\u7528\u306bMac\u3067\u3082\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>[:contents]<\/p>\n<p><!--more--><\/p>\n<p>* Headless Firefox<\/p>\n<p>** \u74b0\u5883\u69cb\u7bc9<\/p>\n<p>*** Firefox<br \/>\n\u30d6\u30e9\u30a6\u30b6\u672c\u4f53\u3068\u3057\u3066Firefox\u304c\u5fc5\u8981\u3067\u3059\u3002\u307e\u305fFirefox\u3092\u5236\u5fa1\u3059\u308b\u305f\u3081\u306b\u3001Selenium Webdriver\u306e\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3068\u3057\u3066Firefox Geckodriver\u304c\u5fc5\u8981\u3067\u3059\u3002<br \/>\n\u30cd\u30c3\u30c8\u306b\u3042\u308b\u89e3\u8aac\u3060\u3068\u3069\u3061\u3089\u3082\u624b\u4f5c\u696d\u3067\u5165\u308c\u3066\u3044\u308b\u4f8b\u304c\u591a\u3044\u3067\u3059\u304c\u3001\u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u3053\u3060\u308f\u308a\u304c\u306a\u3044\u5834\u5408\u3001Ubuntu\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u6700\u65b0\u7248\u304c\u5165\u308c\u3089\u308c\u308b\u306e\u3067\u305d\u308c\u3067\u5341\u5206\u3067\u3059\uff08\u3080\u3057\u308d\u3001Firefox\u3068geckodriver\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30df\u30b9\u30de\u30c3\u30c1\u3067\u5909\u306b\u30cf\u30de\u308b\u306e\u3092\u907f\u3051\u3089\u308c\u308b\u306e\u3067\u3001\u3053\u3060\u308f\u308a\u304c\u306a\u3051\u308c\u3070\u305d\u3046\u3057\u305f\u307b\u3046\u304c\u3088\u3044\u307f\u305f\u3044\u3067\u3059\uff09\u3002<br \/>\n&#8211; firefox (73.0.1 &#8211; 2020\u5e743\u6708\u73fe\u5728)<br \/>\n&#8211; firefox-geckodriver (0.26.0 &#8211; 2020\u5e743\u6708\u73fe\u5728)<br \/>\ngeckodriver\u3068Firefox\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u5bfe\u5fdc\u95a2\u4fc2\u306f\u3053\u3061\u3089\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<br \/>\n<a href=\"https:\/\/firefox-source-docs.mozilla.org\/testing\/geckodriver\/Support.html\">Supported platforms \u2014 Mozilla Source Tree Docs 75.0a1 documentation<\/a><\/p>\n<p>Mac\u306e\u5834\u5408\u306f\u3001Firefox\u306f\u666e\u901a\u306b\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3068\u3057\u3066\u5e38\u7528\u3059\u308b\u3068\u304d\u3068\u540c\u3058\u3088\u3046\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3001geckodriver\u306fGithub\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305ftar\u3092\u5c55\u958b\u3057\u3001PATH\u306e\u901a\u3063\u3066\u3044\u308b\u5834\u6240\u306b\u7f6e\u3051\u3070OK\u3067\u3059\u3002<br \/>\n[https:\/\/github.com\/mozilla\/geckodriver\/releases]<\/p>\n<p>*** \u30d5\u30a9\u30f3\u30c8<\/p>\n<p>Headless Firefox\u3092\u4f7f\u3063\u3066\u4f55\u3092\u3057\u305f\u3044\u304b\u306b\u3088\u308a\u307e\u3059\u304c\u3001\u4f8b\u3048\u3070\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u306a\u3069\u3092\u64ae\u308b\u306a\u3069\u3057\u305f\u3044\u5834\u5408\u306f\u65e5\u672c\u8a9e\u30d5\u30a9\u30f3\u30c8\u3092\u5165\u308c\u306a\u3044\u3068\u3001\u753b\u50cf\u306e\u4e2d\u306e\u65e5\u672c\u8a9e\u6587\u5b57\u304c\u5168\u3066\u8c46\u8150\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n\u3053\u3061\u3089\u3082Ubuntu\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u306a\u306b\u304b\u9069\u5f53\u306a\u65e5\u672c\u8a9e\u30d5\u30a9\u30f3\u30c8\u30bb\u30c3\u30c8\u3092\u5165\u308c\u3066\u304a\u3051\u3070OK\u3067\u3059\u3002<br \/>\n&#8211; fonts-takao<\/p>\n<p>*** Python<\/p>\n<p>pip\u3067selenium\u304c\u5165\u3063\u3066\u3044\u308c\u3070OK\u3067\u3059\u3002\u4e0a\u8a18\u306e\u74b0\u5883\u8a2d\u5b9a\u3067\u57fa\u672c\u7684\u306b\u6700\u65b0\u306eFirefox\/geckodriver\u304c\u5165\u308b\u306e\u3067\u3001selenium\u3082\u305f\u3076\u3093\u65b0\u3057\u3081\u306e\u3084\u3064\u306b\u3057\u3066\u304a\u3044\u305f\u307b\u3046\u304c\u3088\u3055\u305d\u3046\u3002<\/p>\n<p>** Python + Selenium WebDriver + Headless Firefox\u306e\u30b9\u30cb\u30da\u30c3\u30c8<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\nfrom selenium import webdriver\r\nfrom selenium.webdriver.firefox.options import Options\r\nfrom selenium.webdriver.firefox.firefox_binary import FirefoxBinary\r\n\r\n# Firefox\u30d0\u30a4\u30ca\u30ea\u3078\u306e\u30d1\u30b9\u306f\u3001\u30d5\u30eb\u30d1\u30b9\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308b\uff08PATH\u304c\u901a\u3063\u3066\u3044\u3066\u3082\u95a2\u4fc2\u306a\u3044\uff09\r\n# Mac\u306e\u5834\u5408\u306f\/Applications\/Firefox.app\/Contents\/MacOS\/firefox\r\nbinary = FirefoxBinary('\/usr\/bin\/firefox')\r\n\r\nopts = Options()\r\n# Firefox\u304c\u30af\u30e9\u30c3\u30b7\u30e5\u3059\u308b\u306a\u3069\u3001\u30c7\u30d0\u30c3\u30b0\u6642\u306b\u5fc5\u8981\r\n# opts.log.level = &quot;trace&quot;\r\nopts.headless = True\r\ndriver = webdriver.Firefox(firefox_binary=binary, options=opts)\r\n<\/pre>\n<p>\u5e02\u4e95\u306b\u51fa\u56de\u308b\u4f8b\u3068\u306f\u3044\u304f\u3064\u304b\u7570\u306a\u308b\u70b9\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\n\u8a73\u7d30\u3092\u307e\u3068\u3081\u307e\u3059\u3002<\/p>\n<p>*** Headless\u30e2\u30fc\u30c9\u306e\u6307\u5b9a\u65b9\u6cd5<\/p>\n<p>Headless\u30e2\u30fc\u30c9\u306f &#8220;opts.headless = True&#8221; \u3067\u884c\u308f\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u3088\u3046\u3067\u3059\u3002binary.add_command_line_options(&#8216;-headless&#8217;) \u3068\u3059\u308b\u4f8b\u304c\u591a\u3044\u3067\u3059\u304c\u3001\u305d\u308c\u306fNG\u306e\u3088\u3046\u3067\u3059\u3002<br \/>\n\u3061\u3083\u3093\u3068-headless\u30aa\u30d7\u30b7\u30e7\u30f3\u304cFirefox\u306b\u6e21\u3055\u308c\u3066\u306a\u3044\u3002<br \/>\n\u3059\u308b\u3068Firefox\u306f\u753b\u9762\u3092\u958b\u3053\u3046\u3068\u3059\u308b\u304c\u3001\u5f53\u7136X\u74b0\u5883\u306f\u306a\u3044\u306e\u3067\u6b7b\u306c<\/p>\n<p>\u3053\u3046\u3044\u3046\u3068\u304d\u306f\u3001&#8221;can&#8217;t kill an exited process&#8221;\u3068\u3044\u3046\u3088\u3046\u306a\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n  ...\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/remote\/webdriver.py&quot;, line 157, in __init__\r\n    self.start_session(capabilities, browser_profile)\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/remote\/webdriver.py&quot;, line 252, in start_session\r\n    response = self.execute(Command.NEW_SESSION, parameters)\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/remote\/webdriver.py&quot;, line 321, in execute\r\n    self.error_handler.check_response(response)\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/remote\/errorhandler.py&quot;, line 242, in check_response\r\n    raise exception_class(message, screen, stacktrace)\r\nselenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process\r\n<\/pre>\n<p>\u3053\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u3092\u51fa\u3059\u539f\u56e0\u306f\u4ed6\u306b\u3082\u3042\u308b\u306e\u3067\u539f\u56e0\u7279\u5b9a\u304c\u3068\u3066\u3082\u5927\u5909\u3060\u3063\u305f\u306e\u3067\u3059\u304c\u3001\u5f8c\u8ff0\u306e\u65b9\u6cd5\u3067\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u3067\u7279\u5b9a\u3067\u304d\u307e\u3057\u305f\u3002\u3002\u53c2\u8003\u307e\u3067\u306b\u3002<\/p>\n<p>*** Firefox\u304c\u30af\u30e9\u30c3\u30b7\u30e5\u3059\u308b\u5834\u5408\u306fgeckodriver\u306e\u30ed\u30b0\u30ec\u30d9\u30eb\u3092\u4e0a\u3052\u308b<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\nopts.log.level = &quot;trace&quot;\r\n<\/pre>\n<p>\u3068\u3057\u3066\u3044\u308b\u90e8\u5206\u3067\u3001Firefox\u306e\u30ed\u30b0\u3092\u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306egeckodriver.log\u306b\u5410\u304f\u3088\u3046\u306b\u3067\u304d\u307e\u3059\u3002<br \/>\n[https:\/\/firefox-source-docs.mozilla.org\/testing\/geckodriver\/TraceLogs.html:title=Enabling trace logs \u2014 Mozilla Source Tree Docs 75.0a1 documentation]<\/p>\n<p>\u4f8b\u3048\u3070\u4e0a\u8a18\u306eHeadless\u30e2\u30fc\u30c9\u6307\u5b9a\u65b9\u6cd5\u304c\u9593\u9055\u3063\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u3053\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3059\u3002<br \/>\nDISPLAY\u74b0\u5883\u5909\u6570\u304c\u306a\u3044\u3053\u3068\uff08\u3064\u307e\u308a\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u4f5c\u308d\u3046\u3068\u3057\u3066\u5931\u6557\u3057\u3066\u308b\u3053\u3068\uff09\u3001\u3055\u3089\u306b\u3088\u304f\u898b\u308b\u3068-headless\u304cfirefox\u306b\u6e21\u3063\u3066\u306a\u3044\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n1583562780591   mozrunner::runner       INFO    Running command: &quot;\/usr\/bin\/firefox&quot; &quot;-marionette&quot; &quot;-foreground&quot; &quot;-no-remote&quot; &quot;-profile&quot; &quot;\/tmp\/rust_mozprofileQAp1Y8&quot;\r\n1583562780592   geckodriver::marionette DEBUG   Waiting 60s to connect to browser on 127.0.0.1:42391\r\nError: no DISPLAY environment variable specified\r\n1583562780902   mozrunner::runner       DEBUG   Killing process 210\r\n1583562780902   webdriver::server       DEBUG   &lt;- 500 Internal Server Error {&quot;value&quot;:{&quot;error&quot;:&quot;unknown error&quot;,&quot;message&quot;:&quot;invalid argument: can't kill an exited process&quot;,&quot;stacktrace&quot;:&quot;&quot;}}\r\n<\/pre>\n<p>\u5931\u6557\u30ed\u30b0\u3060\u3051\u3067\u306a\u304fFirefox\u306e\u6319\u52d5\u304c\u5168\u3066\u30ed\u30b0\u306b\u5410\u304b\u308c\u308b\u306e\u3067\u3001\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u3067\u306f\u57fa\u672c\u7684\u306bOFF\u306b\u3057\u3066\u304a\u304b\u306a\u3044\u3068\u30c7\u30a3\u30b9\u30af\u3092\u98df\u3044\u3064\u3076\u3059\u3053\u3068\u306b\u306a\u308b\u306e\u3067\u6ce8\u610f\u3002<\/p>\n<p>* Headless Chrome(Chromium)<\/p>\n<p>** \u74b0\u5883\u69cb\u7bc9<\/p>\n<p>Firefox\u306e\u5834\u5408\u3068\u540c\u3058\u3067\u3001chromium\u304a\u3088\u3073\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u65e5\u672c\u8a9e\u30d5\u30a9\u30f3\u30c8\u3092Ubuntu\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u5165\u308c\u307e\u3059\u3002<br \/>\n&#8211; chromium-chromedriver (80.0.3987.87 &#8211; 2020\u5e743\u6708\u73fe\u5728)<br \/>\n&#8211; fonts-takao<\/p>\n<p>Mac\u306e\u5834\u5408\u306f\u30d6\u30e9\u30a6\u30b6\u3092\u666e\u901a\u306b\u5e38\u7528\u3059\u308b\u3068\u304d\u3068\u540c\u3058\u3088\u3046\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3001chromedriver\u3092brew cask install chromedriver\u3067\u6e96\u5099\u3059\u308c\u3070OK\u3067\u3059\u3002<\/p>\n<p>Chrome Embedded Framework\u3068\u3044\u3046\u3001\u3061\u3087\u3046\u3069Safari\u306b\u5bfe\u3059\u308bWebKit\u306b\u3042\u305f\u308b\u3088\u3046\u306a\u3082\u306e\u304c\u3042\u308b\u3089\u3057\u304f\u3001\u305f\u3076\u3093\u6280\u8853\u7684\u306b\u306f\u305d\u308c\u3067WebKit\u306b\u5bfe\u3059\u308bPhantomJS\u306b\u3042\u305f\u308b\u3088\u3046\u306aheadless\u30d6\u30e9\u30a6\u30b6\u3092\u4f5c\u308c\u308b\u3093\u3058\u3083\u306a\u3044\u304b\u3068\u601d\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u8a73\u7d30\u306f\u4e0d\u660e\u3002<\/p>\n<p>** Python + Selenium WebDriver + Headless Chromium\u306e\u30b9\u30cb\u30da\u30c3\u30c8<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\nfrom selenium import webdriver\r\nfrom selenium.webdriver.chrome.options import Options\r\n\r\noptions = Options()\r\noptions.add_argument('--headless')\r\noptions.add_argument('--disable-gpu')\r\noptions.add_argument('--disable-dev-shm-usage')\r\noptions.add_argument('--no-sandbox')\r\n\r\ndriver = webdriver.Chrome('chromedriver', chrome_options=options)\r\n<\/pre>\n<p>\u3053\u3061\u3089\u3082\u3001Qiita\u8a18\u4e8b\u306a\u3069\u306b\u3042\u308b\u4f8b\u3068\u5c11\u3057\u9055\u3046\u70b9\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>*** chromedriver\u306e\u30d1\u30b9<\/p>\n<p>\u30d5\u30eb\u30d1\u30b9\u3067\u6307\u5b9a\u3057\u3066\u3044\u308b\u4f8b\u304c\u6bd4\u8f03\u7684\u3088\u304f\u898b\u3064\u304b\u308a\u307e\u3059\u304c\u3001\uff08Firefox\u306e\u4f8b\u3068\u7570\u306a\u308a\uff09chromedriver\u306b\u3064\u3044\u3066\u306fPATH\u304c\u901a\u3063\u3066\u3044\u308c\u3070\u30d5\u30eb\u30d1\u30b9\u3067\u6307\u5b9a\u3057\u306a\u304f\u3066\u3088\u3044\u3088\u3046\u3067\u3059\u3002Ubuntu\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u5165\u308c\u305f\u5834\u5408\u306f\u52dd\u624b\u306b\/usr\/bin\u306b\u5165\u308a\u307e\u3059\u3002<\/p>\n<p>*** &#8211;no-sandbox<\/p>\n<p>Chrome(Chromium)\u3067\u306f\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u7406\u7531\u3067\u3001\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3084\u30b9\u30af\u30ea\u30d7\u30c8\u30a8\u30f3\u30b8\u30f3\u306fSandbox\u3068\u3044\u3046chroot\u3067\u9694\u96e2\u3055\u308c\u305f\u74b0\u5883\u3067\u52d5\u304b\u3055\u308c\u307e\u3059\u3002Docker\u30b3\u30f3\u30c6\u30ca\u5185\u3067chroot\u3092\u3059\u308b\u306b\u306fdocker\u5074\u3067\u306e\u64cd\u4f5c\uff08&#8211;privileged\uff09\u304c\u5fc5\u8981\u3067\u3059\u304c\u3053\u308c\u306f\u4e00\u822c\u7684\u3067\u306a\u3044\u306e\u3067((Heroku\u306f[https:\/\/devcenter.heroku.com\/articles\/container-registry-and-runtime:title=&#8221;containers are not run with root privileges on Heroku&#8221;]\u3068\u8ff0\u3079\u3066\u3044\u307e\u3059))\u3001\u7d50\u5c40\u666e\u901a\u306bchrome\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002<br \/>\n\u305d\u306e\u3088\u3046\u306a\u72b6\u6cc1\u3067\u306f&#8211;no-sandbox\u3092\u3064\u3051\u3066sandbox\u3092\u7121\u52b9\u5316\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002<br \/>\n\u60aa\u610f\u306e\u3042\u308b\u30b3\u30fc\u30c9\u306b\u8106\u5f31\u6027\u3092\u7a81\u304b\u308c\u308b\u3068\u30a2\u30d7\u30ea\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306a\u3069\u306b\u30a2\u30af\u30bb\u30b9\u3055\u308c\u3066\u3057\u307e\u3046\u53ef\u80fd\u6027\u306f\u3042\u308a\u307e\u3059\u306d\u3002<\/p>\n<p>Python\u5074\u3067\u306e\u30a8\u30e9\u30fc\u306f\u3053\u3093\u306a\u304b\u3093\u3058\u3002<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n  ...\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/chrome\/webdriver.py&quot;, line 81, in __init__\r\n    desired_capabilities=desired_capabilities)\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/remote\/webdriver.py&quot;, line 157, in __init__\r\n    self.start_session(capabilities, browser_profile)\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/remote\/webdriver.py&quot;, line 252, in start_session\r\n    response = self.execute(Command.NEW_SESSION, parameters)\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/remote\/webdriver.py&quot;, line 321, in execute\r\n    self.error_handler.check_response(response)\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/remote\/errorhandler.py&quot;, line 242, in check_response\r\n    raise exception_class(message, screen, stacktrace)\r\nselenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed.\r\n  (unknown error: DevToolsActivePort file doesn't exist)\r\n  (The process started from chrome location \/usr\/bin\/chromium-browser is no longer running, so ChromeDriver is assuming that Chrome has crashed.)\r\n<\/pre>\n<p>\u3053\u306e\u30a8\u30e9\u30fc\u3060\u3051\u3067\u306f\u30ca\u30f3\u30ce\u30b3\u30c3\u30c1\u30e3\u308f\u304b\u3089\u3093\u306e\u3067\u3059\u304c\u3001Python\u7d4c\u7531\u3067\u306a\u304f\u30b7\u30a7\u30eb\u3067\u76f4\u63a5chrome\u3092\u52d5\u304b\u3057\u3066\u307f\u308b\u3068\u3061\u3087\u3063\u3068\u3060\u3051\u60c5\u5831\u304c\u5897\u3048\u307e\u3059\u3002\u3053\u306e\u30b3\u30de\u30f3\u30c9\u306e\u5f15\u6570\u306e&#8211;no-sandbox\u3092\u3064\u3051\u308b\u3068\u52d5\u304f\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n$ chromium-browser --headless --disable-gpu https:\/\/www.renofa.com\r\nFailed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted\r\nTrace\/breakpoint trap (core dumped)\r\n<\/pre>\n<p>\u53c2\u8003\uff1a[https:\/\/skkskynw.hateblo.jp\/entry\/2018\/02\/04\/155031:title=Google Chrome\u3092\u4f7f\u3063\u3066\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u306e\u53d6\u5f97\u3092\u81ea\u52d5\u5316\u3059\u308b &#8211; \u304a\u308c\u3055\u307e\u30e9\u30dc]<\/p>\n<p>*** &#8211;disable-dev-shm-usage<\/p>\n<p>\u3053\u308c\u3092\u6307\u5b9a\u3057\u3066\/dev\/shm\u3092\u4f7f\u308f\u306a\u3044\u3088\u3046\u306b\u3057\u306a\u3044\u3068\u3001Heroku\u306e\u3088\u3046\u306a\u30e1\u30e2\u30ea\u306e\u9650\u3089\u308c\u305f\u74b0\u5883\u3067\u306f\u4f55\u3089\u304b\u306e\u30b5\u30a4\u30c8\u3092\u958b\u3044\u305f\u3068\u304d\u3001\u30e1\u30e2\u30ea\u3092\u98df\u3044\u3064\u3076\u3057\u3066\u6b7b\u306c\u3068\u3044\u3046\u554f\u984c\u304c\u8d77\u3053\u308a\u307e\u3059\u3002\u30b5\u30a4\u30c8\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306b\u3088\u3063\u3066\u8d77\u3053\u3089\u306a\u304b\u3063\u305f\u308a\u3059\u308b\u306e\u3067\u3001\u5384\u4ecb\u3067\u3057\u305f\u3002<br \/>\n\u3053\u306e\u554f\u984c\u3082Python\u30b5\u30a4\u30c9\u306e\u30a8\u30e9\u30fc\u306f\u3053\u3093\u306a\u304b\u3093\u3058\u3067\u30ca\u30f3\u30ce\u30b3\u30c3\u30c1\u30e3\u308f\u304b\u3089\u3093\u3002<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n  ...\r\n  File &quot;&lt;string&gt;&quot;, line 3, in &lt;module&gt;\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/contextlib.py&quot;, line 81, in __enter__\r\n    return next(self.gen)\r\n  File &quot;\/app\/libs\/scraping\/utils.py&quot;, line 73, in screenshot\r\n    with chrome(url, window_size=window_size) as driver:\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/contextlib.py&quot;, line 81, in __enter__\r\n    return next(self.gen)\r\n  File &quot;\/app\/libs\/scraping\/utils.py&quot;, line 51, in chrome\r\n    driver.close()\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/remote\/webdriver.py&quot;, line 688, in close\r\n    self.execute(Command.CLOSE)\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/remote\/webdriver.py&quot;, line 321, in execute\r\n    self.error_handler.check_response(response)\r\n  File &quot;\/app\/.heroku\/python\/lib\/python3.6\/site-packages\/selenium\/webdriver\/remote\/errorhandler.py&quot;, line 242, in check_response\r\n    raise exception_class(message, screen, stacktrace)\r\nselenium.common.exceptions.InvalidSessionIdException: Message: invalid session id\r\n<\/pre>\n<p>\u540c\u69d8\u306bPython\u304b\u3089\u3067\u306a\u304f\u76f4\u63a5shell\u3067chromium\u3092headless\u3067\u8d70\u3089\u305b\u308b\u3068\u30a8\u30e9\u30fc\u304c\u7406\u89e3\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n$ chromium-browser --headless --disable-gpu https:\/\/www.renofa.com\r\n...\r\n&#x5B;0307\/065140.096622:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.097729:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.099025:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.099592:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.099927:FATAL:memory.cc(22)] Out of memory. size=262144\r\n&#x5B;0307\/065140.110096:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.110982:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.124425:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.131857:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n...\r\n&#x5B;0307\/065140.136192:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.136935:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.142018:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.142645:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.143168:ERROR:broker_posix.cc(46)] Received unexpected number of handles\r\n&#x5B;0307\/065140.320535:ERROR:headless_shell.cc(398)] Abnormal renderer termination.\r\n<\/pre>\n<p>\/dev\/shm\u3092\u62e1\u5f35\u3057\u3066\u3082\u3044\u3044\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u306a\u3069\u3067\u306f\u305d\u306e\u3088\u3046\u306a\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u306e\u52b9\u304b\u306a\u3044\u74b0\u5883\u304c\u591a\u3044\u3068\u601d\u3046\u306e\u3067\u3001\u7d20\u76f4\u306b&#8211;disable-dev-shm-usage\u3092\u3059\u308b\u306e\u304c\u3088\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u53c2\u8003\uff1a[https:\/\/stackoverflow.com\/questions\/56218242\/:title=Headless Chromium on Docker fails &#8211; Stack Overflow]<\/p>\n<p>* WebDriver\u5171\u901a\u306e\u8a71<\/p>\n<p>WebDriver\u3092\u4f5c\u3063\u305f\u5f8c\u3001\u5f8c\u59cb\u672b\u3092close\u3067\u3059\u308b\u304bquit\u3067\u3059\u308b\u304b\u3001\u3069\u3061\u3089\u3067\u3059\u308b\u3079\u304d\u304b\u3088\u304f\u308f\u304b\u3063\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\u3002<br \/>\n\u3053\u3046\u3044\u3046\u3053\u3068\u3060\u305d\u3046\u3067\u3059\u3002<br \/>\n[https:\/\/artoftesting.com\/difference-between-driver-close-and-driver-quit-command-in-selenium-webdriver:title=Difference between driver.close() and driver.quit() in selenium webdriver]<br \/>\nWeb\u30a2\u30d7\u30ea\u306e\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3068\u3057\u3066\u4f8b\u3048\u3070JS\u306b\u3088\u308bDOM\u64cd\u4f5c\u5f8c\u306eHTML\u3092\u53d6\u5f97\u3057\u305f\u308a\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u64ae\u3063\u305f\u308a\u3059\u308b\u3088\u3046\u306a\u76ee\u7684\u3067\u3042\u308c\u3070\u3001quit\u3067\u30d6\u30e9\u30a6\u30b6\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u7686\u6bba\u3057\u306b\u3059\u308b\u306e\u3067\u3088\u3055\u305d\u3046\u3002<\/p>\n<p>* \u30e1\u30e2\u30ea\u6d88\u8cbb\u306e\u30d9\u30f3\u30c1\u30de\u30fc\u30af<\/p>\n<p>Heroku\u306e\u3088\u3046\u306a\u74b0\u5883\u3067headless\u30d6\u30e9\u30a6\u30b6\u3092\u52d5\u304b\u3059\u3068\u304d\u6c17\u306b\u306a\u308b\u306e\u304c\u30e1\u30e2\u30ea\u6d88\u8cbb\u3067\u3059\u3002<br \/>\n[https:\/\/github.com\/pythonprofilers\/memory_profiler:title=memory_profiler]\u3092\u4f7f\u3063\u3066\u3001Python\u30a4\u30f3\u30bf\u30d7\u30ea\u30bf\u3092\u542b\u3080\u5168\u4f53\u306b\u3064\u3044\u3066\u7c21\u5358\u306a\u30e1\u30e2\u30ea\u8a08\u6e2c\u3092\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>Firefox\/Chrome\u3068\u3082\u306b\u4e0a\u8a18\u306e\u30b9\u30cb\u30da\u30c3\u30c8\u3092\u4f7f\u3063\u3066Selenium WebDriver\u3092\u4f5c\u3063\u305f\u3042\u3068\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u3092\u958b\u3044\u3066[https:\/\/selenium-python.readthedocs.io\/api.html#selenium.webdriver.remote.webdriver.WebDriver.save_screenshot:title=\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092PNG\u3067\u64ae\u5f71]\u3059\u308b\u3088\u3046\u306a\u30b3\u30fc\u30c9\u306b\u3064\u3044\u3066\u30010.1\u79d2\u3054\u3068\u306b\u6e2c\u5b9a\u3057\u305f\u30e1\u30e2\u30ea\u6d88\u8cbb\uff08MB\u5358\u4f4d\uff09\u306e\u30d4\u30fc\u30af\u3092\u96d1\u306b\u6bd4\u8f03\u3057\u3066\u307f\u307e\u3057\u305f\u3002\u3044\u304f\u3064\u304b\u306e\u30c6\u30ad\u30c8\u30fc\u306a\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u306b\u3064\u3044\u3066\u3001\u305d\u308c\u305e\u308c10\u56de\u306e\u5e73\u5747\u3068\u6700\u5927\u3067\u6e2c\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>|* \u30b5\u30a4\u30c8 |* Average (Chromium) |* Max (Chromium)\t|* Average (Firefox) |* Max (Firefox) |<br \/>\n| https:\/\/www.google.com\/\t   | 389.5 |\t390.6 |\t621.5 |\t634.2 |<br \/>\n| https:\/\/www.renofa.com\/\t   | 609.4 |\t622.5 |\t754.2 |\t782   |<br \/>\n| https:\/\/www.jleague.jp\/\t   | 675.9 |\t683.6 |\t797.6 |\t813.4 |<br \/>\n| https:\/\/www.rakuten.co.jp\/ | 654.8 |\t691.9 |\t779.8 |\t797.2 |<br \/>\n| https:\/\/ja.wikipedia.org\/\t | 395.1 |\t398.4 |\t639.4 |\t640.8 |<\/p>\n<p>\u5168\u4f53\u7684\u306bChrome\u306e\u307b\u3046\u304c\u30b3\u30f3\u30b9\u30bf\u30f3\u30c8\u306b\u30d4\u30fc\u30af\u30e1\u30e2\u30ea\u6d88\u8cbb\u304c\u5c11\u306a\u3044\u69d8\u5b50\u3002<\/p>\n<p>\u307e\u305f\u3001\u30d9\u30fc\u30b9\u306e\u30e1\u30e2\u30ea\u6d88\u8cbb\u3068\u3044\u3046\u304b\u4e0b\u9650\u5024\u3092\u77e5\u308a\u305f\u304b\u3063\u305f\u305f\u3081\u3001WebDriver\u3092\u5358\u306b\u521d\u671f\u5316\u3057\u305f\u3060\u3051\uff08\u7279\u5b9a\u306e\u30b5\u30a4\u30c8\u3092\u958b\u304b\u305aabout:blank\u306aWebDriver\u3092\u958b\u3044\u305f\uff1d\u3064\u307e\u308a\u30d6\u30e9\u30a6\u30b6\u3092\u8d77\u52d5\u3057\u305f\u3060\u3051\uff09\u3068\u304d\u306e\u30e1\u30e2\u30ea\u6d88\u8cbb\u306f\u3053\u3093\u306a\u304b\u3093\u3058\u3067\u3057\u305f\u3002\u540c\u3058\u304fMB\u5358\u4f4d\u3067\u3059\u3002<\/p>\n<p>|* \u30d6\u30e9\u30a6\u30b6 |* \u30e1\u30e2\u30ea(Average) |* \u30e1\u30e2\u30ea(Max) |<br \/>\n| Firefox | 559.9 | 568.6 |<br \/>\n| Chromium | 269.3 | 337.6 |<\/p>\n<p>* \u6642\u9593\u306e\u30d9\u30f3\u30c1\u30de\u30fc\u30af<\/p>\n<p>WebDriver\u306e\u521d\u671f\u5316\u3001\u30da\u30fc\u30b8\u306e\u8aad\u307f\u8fbc\u307f\u3001\u30b9\u30af\u30b7\u30e7\u306e\u64ae\u5f71\u3001Driver\u3092\u7834\u68c4\u3059\u308b\u3001\u3068\u3044\u3046\u4e00\u9023\u306e\u51e6\u7406\u306b\u304b\u304b\u308b\u6642\u9593\u3092\u540c\u69d8\u306b\u6e2c\u3063\u3066\u307f\u307e\u3057\u305f\u3002\u3053\u3061\u3089\u306fPython\u306etime\u3067\u6e2c\u3063\u3066\u3044\u3066\u3001Python\u30a4\u30f3\u30bf\u30d7\u30ea\u30bf\u306e\u8d77\u52d5\u6642\u9593\u306a\u3069\u306f\u542b\u3093\u3067\u3044\u307e\u305b\u3093\u3002\u540c\u69d8\u306b10\u56de\u306e\u5e73\u5747\u3068\u6700\u5927\u3092\u79d2\u5358\u4f4d\u3067\u307e\u3068\u3081\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u306a\u304a\u30c6\u30b9\u30c8\u74b0\u5883\u306fConoha VPS\u306e\u6771\u4eacDC\u306e1GB\/SSD50GB\/100Mbps\u30d7\u30e9\u30f3\u3067\u3059\u3002<\/p>\n<p>|* \u30b5\u30a4\u30c8 |* Average (Chromium) |* Max (Chromium) |* Average (Firefox) |* Max (Firefox) |<br \/>\n| https:\/\/www.google.com | 2.15\u79d2 | 3.18\u79d2 | 8.10\u79d2 | 12.89\u79d2 |<br \/>\n| https:\/\/www.renofa.com | 7.02\u79d2 | 8.17\u79d2 | 15.57\u79d2 | 17.54\u79d2 |<br \/>\n| https:\/\/www.jleague.jp\/ | 6.26\u79d2 | 6.82\u79d2 | 20.91\u79d2 | 37.79\u79d2 |<br \/>\n| https:\/\/www.rakuten.co.jp\/ | 19.06\u79d2 | 20.17\u79d2 | 14.42\u79d2 | 25.21\u79d2 |<br \/>\n| https:\/\/ja.wikipedia.org\/ | 2.49\u79d2 | 2.62\u79d2 | 8.35\u79d2 | 14.72\u79d2 |<\/p>\n<p>\u5168\u822c\u7684\u306bChromium\u306e\u307b\u3046\u304c\u9855\u8457\u306b\u901f\u3044\u4e00\u65b9\u3067\u3001\u697d\u5929\u306e\u30da\u30fc\u30b8\u30ed\u30fc\u30c9\u3060\u3051\u3084\u305f\u3089\u3081\u3063\u305f\u3089Firefox\u306e\u307b\u3046\u304c\u901f\u3044\u3067\u3059\u306d\u3002<\/p>\n<p>\u307e\u305f\u3001\u3053\u3061\u3089\u3082\u540c\u69d8\u306b\u5358\u306bWebDriver\u3092\u958b\u3044\u305f\u3060\u3051\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u3092\u958b\u304b\u306a\u3044\u3001about:blank\u306aWebDriver\u3092\u958b\u3044\u3066\u9589\u3058\u308b\u307e\u3067\u306e\u6642\u9593\u306f\u3053\u3093\u306a\u304b\u3093\u3058\u3067\u3057\u305f\u3002<\/p>\n<p>|* \u30d6\u30e9\u30a6\u30b6 |* \u5e73\u5747\u6642\u9593 |* \u6700\u5927\u6642\u9593 |<br \/>\n| Firefox | 5.73\u79d2 | 6.71\u79d2 |<br \/>\n| Chromium | 1.32\u79d2 | 1.36\u79d2 |<\/p>\n<p>\u3053\u3061\u3089\u306f\u30e1\u30e2\u30ea\u3088\u308a\u3082\u9065\u304b\u306b\u9855\u8457\u306a\u5dee\u3067\u3001Chromium\u306aWebDriver\u306e\u8d77\u52d5\u304c\u901f\u3044\u3068\u3044\u3046\u7d50\u679c\u306b\u3002<br \/>\n\u305f\u3060\u3044\u305a\u308c\u306b\u3057\u3066\u3082\u3001\u983b\u7e41\u306bWebDriver\u3092\u5229\u7528\u3059\u308b\u3088\u3046\u306a\u7528\u9014\u3067\u306f\u6bce\u56deWebDriver\u306e\u521d\u671f\u5316\u304b\u3089\u3059\u308b\u306e\u306f\u4e94\u5341\u6b69\u767e\u6b69\u3067\u975e\u52b9\u7387\u306a\u306e\u3067\u3001web driver\u306e\u4f7f\u3044\u307e\u308f\u3057\u306a\u3069\u3092\u3057\u3066\u52b9\u7387\u5316\u3057\u305f\u307b\u3046\u304c\u3088\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n<p>\u7d14\u7c8b\u306b\u30da\u30fc\u30b8\u3092\u30ed\u30fc\u30c9\u3057\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3057\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u64ae\u308b\u90e8\u5206\u306e\u6642\u9593\u3082\u6e2c\u3063\u3066\u307f\u307e\u3057\u305f\u3002web driver\u3092\u4f7f\u3044\u307e\u308f\u3057\u3066\u521d\u671f\u5316\u6642\u9593\u3092\u7bc0\u7d04\u3057\u3066\u30821\u30da\u30fc\u30b8\u3092\u8aad\u307f\u8fbc\u3080\u306e\u306b\u907f\u3051\u3089\u308c\u306a\u3044\u6642\u9593\u3067\u3059\u3002\u30ad\u30e3\u30c3\u30b7\u30e5\u306f\u52b9\u304b\u306a\u304f\u3057\u3066\u3042\u308a\u307e\u3059\u3002\u57fa\u672c\u7684\u306b\u306f\u3001\u4e0a\u8a18\u306e\u300c\u5168\u3066\u3092\u542b\u3093\u3060\u6642\u9593\u300d\u304b\u3089\u300cdriver\u306e\u307f\u3092\u521d\u671f\u5316\u30fb\u7834\u68c4\u3059\u308b\u306e\u306b\u304b\u304b\u308b\u6642\u9593\u300d\u3092\u5f15\u3044\u305f\u3082\u306e\u306b\u76f8\u5f53\u3057\u307e\u3059\u304c\u3001Python\u306etime.time()\u3067\u5b9f\u6e2c\u3057\u305f\u3082\u306e\u3067\u3059\uff0810\u56de\u306e\u5e73\u5747\u3068\u6700\u5927\uff09\u3002<\/p>\n<p>|* \u30b5\u30a4\u30c8 |* Average (Chromium) |* Max (Chromium) |* Average (Firefox) |* Max (Firefox) |<br \/>\n| https:\/\/www.google.com\/ | 0.59\u79d2 | 0.68\u79d2 | 0.70\u79d2 | 0.88\u79d2 |<br \/>\n| https:\/\/www.renofa.com\/ | 4.81\u79d2 | 5.04\u79d2 | 7.90\u79d2 | 12.65\u79d2 |<br \/>\n| https:\/\/www.jleague.jp\/ | 5.02\u79d2 | 5.37\u79d2 | 5.90\u79d2 | 14.19\u79d2 |<br \/>\n| https:\/\/www.rakuten.co.jp\/ | 17.39\u79d2 | 17.71\u79d2 | 4.29\u79d2 | 6.22\u79d2 |<br \/>\n| https:\/\/ja.wikipedia.org\/ | 1.09\u79d2 | 1.19\u79d2 | 1.30\u79d2 | 1.38\u79d2 |<\/p>\n<p>\u306a\u3093\u3067\u697d\u5929\u306e\u30b5\u30a4\u30c8\u3092\u958b\u304f\u3068\u304d\u3060\u3051Firefox\u304c\u3081\u3061\u3083\u304f\u3061\u3083\u901f\u3044\u3093\u3060\u308d\u3046\u3002<\/p>\n<p>\u3082\u3061\u308d\u3093\u30d6\u30e9\u30a6\u30b6\u8d77\u52d5\u30fb\u30ed\u30fc\u30c9\u30fb\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u6642\u9593\u3084\u30e1\u30e2\u30ea\u6d88\u8cbb\u306f\u305d\u306e\u6642\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306b\u3088\u308b\u3057Web\u30d6\u30e9\u30a6\u30b6\u306f\u6027\u80fd\u9762\u3067\u6539\u5584\u304c\u8457\u3057\u3044\u4eca\u65e5\u3053\u306e\u3054\u308d\u306a\u306e\u3067\u3001\u3042\u304f\u307e\u3067\u53c2\u8003\u7a0b\u5ea6\u306b\u3002\u3067\u3059\u304c\u3001\u7dcf\u5408\u7684\u306b\u307f\u3066Web\u30a2\u30d7\u30ea\u306b\u7d44\u307f\u8fbc\u3080\u76ee\u7684\u3067\u3042\u308c\u3070Headless Chromium\u3092\u4f7f\u3046\u307b\u3046\u304c\u9069\u3057\u3066\u3044\u308b\u3068\u3044\u3063\u3066\u3082\u5dee\u3057\u652f\u3048\u306a\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u3042\u3068\u3001Firefox\u306f\u3061\u3087\u3073\u3063\u3068\u3060\u3051\u4e0d\u5b89\u5b9a\u611f\u304c\u3042\u308a\u307e\u3059\u3002\u307e\u308c\u306b\u3053\u3093\u306a\u30a8\u30e9\u30fc\u304c\u51fa\u3066\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u304c\u3067\u304d\u306a\u304b\u3063\u305f\u308a\u3068\u304b\u3057\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nselenium.common.exceptions.WebDriverException: Message: &#x5B;Exception... &quot;Data conversion failed because significant data would be lost&quot;  nsresult: &quot;0x80460003 (NS_ERROR_LOSS_OF_SIGNIFICANT_DATA)&quot;  locat\r\nion: &quot;JS frame :: resource:\/\/gre\/modules\/AsyncShutdown.jsm :: observe :: line 551&quot;  data: no]\r\n<\/pre>\n<p>\u500b\u4eba\u7684\u306b\u306f\u3001\u5e38\u7528\u30d6\u30e9\u30a6\u30b6\u3068\u3057\u3066\u306f[https:\/\/addons.mozilla.org\/ja\/firefox\/addon\/tree-style-tab\/:title=\u7e26\u30bf\u30d6\u6a5f\u80fd\u304c\u5b9f\u88c5\u53ef\u80fd\u306a\u3053\u3068]\u3084\u30c7\u30d9\u30ed\u30c3\u30d1\u30fc\u30c4\u30fc\u30eb\u304c\u4f7f\u3044\u3084\u3059\u3044\u3053\u3068\u304b\u3089Firefox\u3092\u5fc5\u305a\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9b5a\u985e\u306f\u4e00\u822c\u306b\u306f\u5909\u6e29\u52d5\u7269\u3068\u3055\u308c\u307e\u3059\u304c\u3001\u30de\u30b0\u30ed\u306a\u3069\u4e00\u90e8\u306e\u9b5a\u306f\u4f53\u6e29\u3092\u4e00\u5b9a\u306b\u4fdd\u3061\u6d3b\u52d5\u80fd\u529b\u3092\u7dad\u6301\u3059\u308b\u4ed5\u7d44\u307f\u304c\u3042\u308a\u4e8b\u5b9f\u4e0a\u306e\u6052\u6e29\u52d5\u7269\u3068\u3057\u3066\u306e\u7279\u5fb4\u3092\u3082\u3064\u3053\u3068\u3082\u3042\u308b\u306e\u3060\u305d\u3046\u3067\u3059\u3002 Python\u30d9\u30fc\u30b9\u306eWeb\u30a2\u30d7\u30ea\u306bHeadless Chr [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[48],"class_list":["post-2691","post","type-post","status-publish","format-standard","hentry","category-1","tag-python"],"_links":{"self":[{"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/posts\/2691","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2691"}],"version-history":[{"count":39,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/posts\/2691\/revisions"}],"predecessor-version":[{"id":2730,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/posts\/2691\/revisions\/2730"}],"wp:attachment":[{"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2691"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2691"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}