{ "cells": [ { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: selenium in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (4.23.1)\n", "Requirement already satisfied: urllib3<3,>=1.26 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from urllib3[socks]<3,>=1.26->selenium) (2.2.2)\n", "Requirement already satisfied: trio~=0.17 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from selenium) (0.26.0)\n", "Requirement already satisfied: trio-websocket~=0.9 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from selenium) (0.11.1)\n", "Requirement already satisfied: certifi>=2021.10.8 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from selenium) (2024.7.4)\n", "Requirement already satisfied: typing_extensions~=4.9 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from selenium) (4.12.2)\n", "Requirement already satisfied: websocket-client~=1.8 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from selenium) (1.8.0)\n", "Requirement already satisfied: attrs>=23.2.0 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from trio~=0.17->selenium) (23.2.0)\n", "Requirement already satisfied: sortedcontainers in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from trio~=0.17->selenium) (2.4.0)\n", "Requirement already satisfied: idna in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from trio~=0.17->selenium) (3.7)\n", "Requirement already satisfied: outcome in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from trio~=0.17->selenium) (1.3.0.post0)\n", "Requirement already satisfied: sniffio>=1.3.0 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from trio~=0.17->selenium) (1.3.1)\n", "Requirement already satisfied: cffi>=1.14 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from trio~=0.17->selenium) (1.16.0)\n", "Requirement already satisfied: wsproto>=0.14 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from trio-websocket~=0.9->selenium) (1.2.0)\n", "Requirement already satisfied: pysocks!=1.5.7,<2.0,>=1.5.6 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from urllib3[socks]<3,>=1.26->selenium) (1.7.1)\n", "Requirement already satisfied: pycparser in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from cffi>=1.14->trio~=0.17->selenium) (2.22)\n", "Requirement already satisfied: h11<1,>=0.9.0 in c:\\users\\isan\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from wsproto>=0.14->trio-websocket~=0.9->selenium) (0.14.0)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 24.0 -> 24.1.2\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "^C\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "ERROR: unknown command \"Install\" - maybe you meant \"install\"\n", "\n" ] } ], "source": [ "!pip install selenium\n", "!pip Install wget" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from selenium import webdriver\n", "from selenium.webdriver.common.keys import Keys\n", "from selenium.webdriver.support import expected_conditions as EC\n", "from selenium.webdriver.common.by import By\n", "from selenium.webdriver.support.wait import WebDriverWait\n", "import time, urllib.request, requests" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "driver = webdriver.Chrome()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "driver.get(\"http://instagram.com\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "username = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, \"input[name='username']\")))\n", "password = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, \"input[name='password']\")))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "username.clear()\n", "username.send_keys(\"firdaus_ihsan20\")\n", "password.clear()\n", "password.send_keys(\"Herlina20\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "button = WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.CSS_SELECTOR, \"button[type='submit']\"))).click()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "time.sleep(5)\n", "alert = WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '[role=\"button\"][tabindex=\"0\"]'))).click()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "time.sleep(5)\n", "alert = WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.XPATH, '//button[contains(text(), \"Not Now\")]'))).click()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "driver.get(\"http://instagram.com/detikcom/\")" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "n_scrolls = 3\n", "for j in range(0, n_scrolls):\n", " driver.execute_script(\"window.scrollTo(0, document.body.scrollHeight);\")\n", " time.sleep(5) " ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['https://www.instagram.com/p/C92k86NyqGx/', 'https://www.instagram.com/p/C92gRMDs6R-/', 'https://www.instagram.com/p/C92bj6EshrZ/', 'https://www.instagram.com/p/C92ZUWos_ZT/', 'https://www.instagram.com/p/C92SY51MAZ_/', 'https://www.instagram.com/p/C92O9cvMXqt/', 'https://www.instagram.com/p/C92BOUIMj-b/', 'https://www.instagram.com/p/C92AS9ySjlx/', 'https://www.instagram.com/p/C911GNGJvnp/', 'https://www.instagram.com/p/C91wgp0sAAp/', 'https://www.instagram.com/p/C91vj4LxOxx/', 'https://www.instagram.com/p/C91kDvlsyro/', 'https://www.instagram.com/p/C91ii9vM0hq/', 'https://www.instagram.com/p/C91YS5lvfoy/', 'https://www.instagram.com/p/C91UnYXo8rP/', 'https://www.instagram.com/p/C91Q9C9JDEG/', 'https://www.instagram.com/p/C91Ojq3SYFL/', 'https://www.instagram.com/p/C91KotiI_pA/', 'https://www.instagram.com/p/C91Ecr7PqoX/', 'https://www.instagram.com/p/C908jj3oeFU/', 'https://www.instagram.com/p/C9ztoFIs3hf/', 'https://www.instagram.com/p/C9zqKtHsvwJ/', 'https://www.instagram.com/p/C9zpJgBsdnC/', 'https://www.instagram.com/p/C9zocQMMjOy/']\n" ] } ], "source": [ "posts = []\n", "links = driver.find_elements(By.TAG_NAME, 'a')\n", "for link in links:\n", " post = link.get_attribute('href')\n", " if post and '/p/' in post:\n", " posts.append(post)\n", "\n", "print(posts)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "searchbox = WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '[aria-label = \"Search\"]'))).click()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "searchboxx = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, \"//input[@placeholder='Search']\")))" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "searchboxx.clear()\n", "keyword = \"detikcom\"\n", "searchboxx.send_keys(keyword)\n", "time.sleep(5)\n", "searchboxx.send_keys(Keys.ENTER)\n", "searchboxx.send_keys(Keys.ENTER)" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "ename": "TimeoutException", "evalue": "Message: \nStacktrace:\n\tGetHandleVerifier [0x00007FF6C2E99632+30946]\n\t(No symbol) [0x00007FF6C2E4E3C9]\n\t(No symbol) [0x00007FF6C2D46FDA]\n\t(No symbol) [0x00007FF6C2D9822C]\n\t(No symbol) [0x00007FF6C2D9850C]\n\t(No symbol) [0x00007FF6C2DDDCB7]\n\t(No symbol) [0x00007FF6C2DBCAAF]\n\t(No symbol) [0x00007FF6C2DDB041]\n\t(No symbol) [0x00007FF6C2DBC813]\n\t(No symbol) [0x00007FF6C2D8A6E5]\n\t(No symbol) [0x00007FF6C2D8B021]\n\tGetHandleVerifier [0x00007FF6C2FCF83D+1301229]\n\tGetHandleVerifier [0x00007FF6C2FDBDB7+1351783]\n\tGetHandleVerifier [0x00007FF6C2FD2A03+1313971]\n\tGetHandleVerifier [0x00007FF6C2ECDD06+245686]\n\t(No symbol) [0x00007FF6C2E5758F]\n\t(No symbol) [0x00007FF6C2E53804]\n\t(No symbol) [0x00007FF6C2E53992]\n\t(No symbol) [0x00007FF6C2E4A3EF]\n\tBaseThreadInitThunk [0x00007FF80AC1257D+29]\n\tRtlUserThreadStart [0x00007FF80C16AF28+40]\n", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTimeoutException\u001b[0m Traceback (most recent call last)", "Cell \u001b[1;32mIn[74], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m time\u001b[38;5;241m.\u001b[39msleep(\u001b[38;5;241m5\u001b[39m)\n\u001b[1;32m----> 2\u001b[0m ambil \u001b[38;5;241m=\u001b[39m \u001b[43mWebDriverWait\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdriver\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m10\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43muntil\u001b[49m\u001b[43m(\u001b[49m\u001b[43mEC\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43melement_to_be_clickable\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[43mBy\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mXPATH\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m//input[@placeholder=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mSearch\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m]// a[1]\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mclick()\n", "File \u001b[1;32mc:\\Users\\isan\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\selenium\\webdriver\\support\\wait.py:105\u001b[0m, in \u001b[0;36mWebDriverWait.until\u001b[1;34m(self, method, message)\u001b[0m\n\u001b[0;32m 103\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m time\u001b[38;5;241m.\u001b[39mmonotonic() \u001b[38;5;241m>\u001b[39m end_time:\n\u001b[0;32m 104\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[1;32m--> 105\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m TimeoutException(message, screen, stacktrace)\n", "\u001b[1;31mTimeoutException\u001b[0m: Message: \nStacktrace:\n\tGetHandleVerifier [0x00007FF6C2E99632+30946]\n\t(No symbol) [0x00007FF6C2E4E3C9]\n\t(No symbol) [0x00007FF6C2D46FDA]\n\t(No symbol) [0x00007FF6C2D9822C]\n\t(No symbol) [0x00007FF6C2D9850C]\n\t(No symbol) [0x00007FF6C2DDDCB7]\n\t(No symbol) [0x00007FF6C2DBCAAF]\n\t(No symbol) [0x00007FF6C2DDB041]\n\t(No symbol) [0x00007FF6C2DBC813]\n\t(No symbol) [0x00007FF6C2D8A6E5]\n\t(No symbol) [0x00007FF6C2D8B021]\n\tGetHandleVerifier [0x00007FF6C2FCF83D+1301229]\n\tGetHandleVerifier [0x00007FF6C2FDBDB7+1351783]\n\tGetHandleVerifier [0x00007FF6C2FD2A03+1313971]\n\tGetHandleVerifier [0x00007FF6C2ECDD06+245686]\n\t(No symbol) [0x00007FF6C2E5758F]\n\t(No symbol) [0x00007FF6C2E53804]\n\t(No symbol) [0x00007FF6C2E53992]\n\t(No symbol) [0x00007FF6C2E4A3EF]\n\tBaseThreadInitThunk [0x00007FF80AC1257D+29]\n\tRtlUserThreadStart [0x00007FF80C16AF28+40]\n" ] } ], "source": [ "time.sleep(5)\n", "ambil = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, \"//input[@placeholder='Search']// a[1]\"))).click()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.4" } }, "nbformat": 4, "nbformat_minor": 2 }