{"id":830,"date":"2021-12-16T15:48:46","date_gmt":"2021-12-16T06:48:46","guid":{"rendered":"https:\/\/rfsec.ddns.net\/db\/?p=830"},"modified":"2022-02-28T09:06:22","modified_gmt":"2022-02-28T00:06:22","slug":"selenium%e3%81%a7%e3%82%b9%e3%82%af%e3%83%ac%e3%82%a4%e3%83%94%e3%83%b3%e3%82%b0%e3%81%ae%e6%ba%96%e5%82%99","status":"publish","type":"post","link":"https:\/\/rfsec.ddns.net\/db\/?p=830","title":{"rendered":"Selenium\u3067\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u306e\u6e96\u5099"},"content":{"rendered":"\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>$sudo apt-get update\n$sudo apt install chromium-chromedriver\n$sddo cp \/usr\/lib\/chromium-browser\/chromedriver \/usr\/bin\n$pip install selenium\n$pip install webdriver_manager<\/code><\/pre><\/div>\n\n\n\n<p>\u7d1b\u3089\u308f\u3057\u3044\u70b9\uff1awebdriver_manager\u3068webdrivermanager\u306e\u4e21\u65b9\u304c\u5b58\u5728\u3057\u3001\u6a5f\u80fd\u304c\u540c\u3058\u3067\u306f\u306a\u3044\u3002<strong>webdriver_manager<\/strong>\u306e\u65b9\u304c\u826f\u3055\u305d\u3046\u3002<\/p>\n\n\n\n<p>Web\u30b5\u30a4\u30c8\u306e\u30bf\u30a4\u30c8\u30eb\u3092\u53d6\u5f97\u3057\u3066\u307f\u308b\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>from selenium import webdriver\nimport time\n\n#---------------------------------------------------------------------------------------\n# \u51e6\u7406\u958b\u59cb\n#---------------------------------------------------------------------------------------\n# \u30d6\u30e9\u30a6\u30b6\u3092headless\u30e2\u30fc\u30c9\u5b9f\u884c\nprint(&quot;\\n\u30d6\u30e9\u30a6\u30b6\u3092\u8a2d\u5b9a&quot;)\noptions = webdriver.ChromeOptions()\noptions.add_argument(&#39;--headless&#39;)\noptions.add_argument(&#39;--no-sandbox&#39;)\noptions.add_argument(&#39;--disable-dev-shm-usage&#39;)\ndriver = webdriver.Chrome(&#39;chromedriver&#39;,options=options)\ndriver.implicitly_wait(10)\n\n# \u30b5\u30a4\u30c8\u306b\u30a2\u30af\u30bb\u30b9\nprint(&quot;\u30b5\u30a4\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u958b\u59cb&quot;)\nURL=&quot;https:\/\/rfsec.ddns.net\/db\/&quot;\ndriver.get(URL)\ntime.sleep(3)\n# driver.find_elements_by_css_selector(&quot;xxx&quot;) \u7684\u306a\u51e6\u7406\u3092\u81ea\u7531\u306b\nprint(&quot;\u30b5\u30a4\u30c8\u306e\u30bf\u30a4\u30c8\u30eb\uff1a&quot;, driver.title)<\/code><\/pre><\/div>\n\n\n\n<p><strong>\u8a8d\u8a3c\u304c\u3042\u308b\u30b5\u30a4\u30c8\u306e\u5834\u5408<\/strong>\uff08\u4e2d\u83ef\u88fd\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30ab\u30e1\u30e9\uff09<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>import time\nimport base64\nfrom selenium import webdriver\nfrom webdriver_manager.chrome import ChromeDriverManager\n\ndef get_auth_header(user, password):\n    b64 = &quot;Basic &quot; + base64.b64encode(&#39;{}:{}&#39;.format(user, password).encode(&#39;utf-8&#39;)).decode(&#39;utf-8&#39;)\n    return {&quot;Authorization&quot;: b64}\n\n# Webdriver Manager\u3067ChromeDriver\u3092\u53d6\u5f97\ndriver = webdriver.Chrome(executable_path=ChromeDriverManager().install())\n\n# Authorization\u30d8\u30c3\u30c0\u3092\u4ed8\u4e0e\ndriver.execute_cdp_cmd(&quot;Network.enable&quot;, {})\ndriver.execute_cdp_cmd(&quot;Network.setExtraHTTPHeaders&quot;, {&quot;headers&quot;: get_auth_header(&quot;admin&quot;, &quot;&quot;)})\n# Basic\u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\ndriver.get(&#39;http:\/\/192.168.68.128&#39;)\ntime.sleep(5)\n\ndriver.close()\ndriver.quit()<\/code><\/pre><\/div>\n\n\n\n<p>\u6570\u72ec\u306e\u554f\u984c\u30b5\u30a4\u30c8\u304b\u3089\u554f\u984c\u3092\u53d6\u5f97\u3057\u3066\u3001\u89e3\u304f\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>#\u00a0 \u3053\u3053\u304b\u3089\u304cseleniu\uff4d\u306e\u30b3\u30fc\u30c9\n#\u00a0 \u554f\u984c\u30b5\u30a4\u30c8\u3000http:\/\/numberplace.net\/\n#\nfrom selenium import webdriver\nimport time\nimport numpy as np\n\ndef disp(results):\n\u00a0 \u00a0 msg=&quot;&quot;\n\u00a0 \u00a0 for r in results:\n\u00a0 \u00a0 \u00a0 \u00a0 for y in range(9):\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 for x in range(9):\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 c = r._values[y][x]\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 c = str(c)\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 d = row2[y][x]\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if d != 0:\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 msg=msg+&#39;(&#39;+ c + &#39;) &#39;\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 else:\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 msg=msg+&#39;-&#39;+ c + &#39;- &#39;\u00a0\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 msg=msg+&quot;\\n&quot;\n\u00a0 \u00a0 print(msg)\n\n#---------------------------------------------------------------------------------------\n# \u51e6\u7406\u958b\u59cb\n#---------------------------------------------------------------------------------------\n# \u30d6\u30e9\u30a6\u30b6\u3092headless\u30e2\u30fc\u30c9\u5b9f\u884c\nprint(&quot;\\n\u30d6\u30e9\u30a6\u30b6\u3092\u8a2d\u5b9a&quot;)\noptions = webdriver.ChromeOptions()\noptions.add_argument(&#39;--headless&#39;)\noptions.add_argument(&#39;--no-sandbox&#39;)\noptions.add_argument(&#39;--disable-dev-shm-usage&#39;)\ndriver = webdriver.Chrome(&#39;chromedriver&#39;,options=options)\ndriver.implicitly_wait(2)\n\n# \u30b5\u30a4\u30c8\u306b\u30a2\u30af\u30bb\u30b9\nfor num in range(5):\n\u00a0 \u00a0 URL=&quot;http:\/\/numberplace.net\/?no=&quot;+str(num+1)\n\u00a0 \u00a0 print(&quot;\u30b5\u30a4\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u958b\u59cb:&quot;,URL)\n\u00a0 \u00a0 driver.get(URL)\n\u00a0 \u00a0 time.sleep(2)\n\u00a0 \u00a0 lines= driver.page_source.splitlines()\n\u00a0 \u00a0 for line in lines:\n\u00a0 \u00a0 \u00a0 \u00a0 if &#39;toi&#39; in line:\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 q = line.split(&#39; &#39;)[3].replace(&quot;&#39;&quot;,&quot;&quot;).replace(&quot;;&quot;,&quot;&quot;)\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 q=list(q)\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 #print(q)\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 qi = [int(s) for s in q]\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 #print(qi)\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 q2 = np.array(qi)\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 row2=np.array(q2).reshape(-1,9).tolist()\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 grid = solver.Grid(row2)\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 print(grid)\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 results = solver.solve_all(grid)\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 disp(results)\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 break\nprint(&#39;Done.&#39;)\n<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u7d1b\u3089\u308f\u3057\u3044\u70b9\uff1awebdriver_manager\u3068webdrivermanager\u306e\u4e21\u65b9\u304c\u5b58\u5728\u3057\u3001\u6a5f\u80fd\u304c\u540c\u3058\u3067\u306f\u306a\u3044\u3002webdriver_manager\u306e\u65b9\u304c\u826f\u3055\u305d\u3046\u3002 Web\u30b5\u30a4\u30c8\u306e\u30bf\u30a4\u30c8\u30eb\u3092\u53d6\u5f97\u3057\u3066\u307f\u308b\u3002 \u8a8d\u8a3c\u304c\u3042\u308b [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[8,2,3],"tags":[],"class_list":["post-830","post","type-post","status-publish","format-standard","hentry","category-security","category-camera","category-network"],"featured_image_src":null,"author_info":{"display_name":"mars","author_link":"https:\/\/rfsec.ddns.net\/db\/?author=1"},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/posts\/830","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=830"}],"version-history":[{"count":4,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/posts\/830\/revisions"}],"predecessor-version":[{"id":873,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/posts\/830\/revisions\/873"}],"wp:attachment":[{"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=830"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=830"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}