From b7546bdefa59f1648398e71e24b35f407b885c56 Mon Sep 17 00:00:00 2001 From: JJJZXY <1522844911@qq.com> Date: Mon, 22 Mar 2021 00:08:44 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\347\254\254\344\270\211\350\212\202/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\345\274\240\345\205\264\351\233\250/\347\254\254\345\215\201\344\272\214\345\221\250 3.15 -3.21/\347\254\254\344\270\211\350\212\202/.keep" diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\345\274\240\345\205\264\351\233\250/\347\254\254\345\215\201\344\272\214\345\221\250 3.15 -3.21/\347\254\254\344\270\211\350\212\202/.keep" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\345\274\240\345\205\264\351\233\250/\347\254\254\345\215\201\344\272\214\345\221\250 3.15 -3.21/\347\254\254\344\270\211\350\212\202/.keep" new file mode 100644 index 00000000..e69de29b -- Gitee From 85674634219cfda8700f35d9d5a961e4ffe805be Mon Sep 17 00:00:00 2001 From: JJJZXY <1522844911@qq.com> Date: Mon, 22 Mar 2021 00:09:04 +0800 Subject: [PATCH 2/3] =?UTF-8?q?add=20=E7=AC=AC=E4=BA=8C=E6=9C=9F=E8=AE=AD?= =?UTF-8?q?=E7=BB=83=E8=90=A5/5=E7=8F=AD/5=E7=8F=AD=5F=E5=BC=A0=E5=85=B4?= =?UTF-8?q?=E9=9B=A8/=E7=AC=AC=E5=8D=81=E4=BA=8C=E5=91=A8=203.15=20-3.21/?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E8=8A=82.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\344\273\243\347\240\201.py" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\345\274\240\345\205\264\351\233\250/\347\254\254\345\215\201\344\272\214\345\221\250 3.15 -3.21/\347\254\254\344\270\211\350\212\202/\344\273\243\347\240\201.py" diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\345\274\240\345\205\264\351\233\250/\347\254\254\345\215\201\344\272\214\345\221\250 3.15 -3.21/\347\254\254\344\270\211\350\212\202/\344\273\243\347\240\201.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\345\274\240\345\205\264\351\233\250/\347\254\254\345\215\201\344\272\214\345\221\250 3.15 -3.21/\347\254\254\344\270\211\350\212\202/\344\273\243\347\240\201.py" new file mode 100644 index 00000000..e69de29b -- Gitee From 6eaf80f7ae1fe9207181d9d37393ce8a9ae07e4e Mon Sep 17 00:00:00 2001 From: JJJZXY <1522844911@qq.com> Date: Mon, 22 Mar 2021 00:09:17 +0800 Subject: [PATCH 3/3] =?UTF-8?q?update=20=E7=AC=AC=E4=BA=8C=E6=9C=9F?= =?UTF-8?q?=E8=AE=AD=E7=BB=83=E8=90=A5/5=E7=8F=AD/5=E7=8F=AD=5F=E5=BC=A0?= =?UTF-8?q?=E5=85=B4=E9=9B=A8/=E7=AC=AC=E5=8D=81=E4=BA=8C=E5=91=A8=203.15?= =?UTF-8?q?=20-3.21/=E7=AC=AC=E4=B8=89=E8=8A=82/=E4=BB=A3=E7=A0=81.py.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\344\273\243\347\240\201.py" | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\345\274\240\345\205\264\351\233\250/\347\254\254\345\215\201\344\272\214\345\221\250 3.15 -3.21/\347\254\254\344\270\211\350\212\202/\344\273\243\347\240\201.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\345\274\240\345\205\264\351\233\250/\347\254\254\345\215\201\344\272\214\345\221\250 3.15 -3.21/\347\254\254\344\270\211\350\212\202/\344\273\243\347\240\201.py" index e69de29b..aee1b102 100644 --- "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\345\274\240\345\205\264\351\233\250/\347\254\254\345\215\201\344\272\214\345\221\250 3.15 -3.21/\347\254\254\344\270\211\350\212\202/\344\273\243\347\240\201.py" +++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\345\274\240\345\205\264\351\233\250/\347\254\254\345\215\201\344\272\214\345\221\250 3.15 -3.21/\347\254\254\344\270\211\350\212\202/\344\273\243\347\240\201.py" @@ -0,0 +1,59 @@ +from selenium import webdriver +from selenium.webdriver import ActionChains +from selenium.webdriver.common.keys import Keys +from jd_crawler.jd_parser import search +import time + +driver_path = r"D:\driver\chromedriver.exe" + + +class JdSearch: + def __init__(self, proxy=None, ua=None, headless=False, user_dir=None): + chrome_options = webdriver.ChromeOptions() + chrome_options.add_argument("disable-blink-features=AutomationControlled") + if proxy: + chrome_options.add_argument(f"--proxy-server={proxy}") + if ua: + chrome_options.add_argument(f"--user-agent={ua}") + if headless: + chrome_options.add_argument("--headless") + if user_dir: + chrome_options.add_argument(f"--user-data-dir={user_dir}") + self.browser = webdriver.Chrome(executable_path=driver_path, chrome_options=chrome_options) + self.browser.maximize_window() + self.browser.set_window_size(width=1660, height=960) + self.browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{ + "source":""" + Object.defineProperty(navigator, 'webdriver',{ + get:()=> 'my_webdriver' + }) + """ + }) + + def sim_search(self, keyword, url): + self.browser.get(url) + search_input = self.browser.find_element_by_css_selector('input[aria-label="搜索"]') + search_input.send_keys("鼠标") + search_button = self.browser.find_element_by_css_selector('button[aria-label="搜索"]') + search_button.click() + + + + def main(self, keyword, url): + self.sim_search(keyword, url) + time.sleep(3) + self.browser.execute_script("window.open('http://baidu.com')") + self.browser.switch_to.window(self.browser.window_handles[-1]) + ac = ActionChains(self.browser) + ac.send_keys(Keys.ENTER).perform() + item_array = search.parse_jd_item(self.browser.page_source) + print(item_array) + self.browser.close() + +if __name__ == "__main__": + jd_url = "https://www.jd.com/" + proxy = "127.0.0.1:8888" + ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" + user_dir = r"D:\driver\tmp" + jd_search = JdSearch() + jd_search.main("鼠标", jd_url) -- Gitee