python + selenium + chrome 爬取淘宝总结

喜你入骨 提交于 2019-12-12 12:03:39

1、打开浏览器 查看浏览器版本或者直接输入 chrome://version/
在这里插入图片描述
2、下载浏览器版本对应的chromedriver.exe 下载链接 http://chromedriver.storage.googleapis.com/index.html

3、修改chromedriver.exe,使用Notepad++ 打开chromedriver.exe 查找$cdc,把红线框的这部分修改(随意修改什么,保持位数不变,这一步的目的是为了跳过淘宝对selenium的检测)
在这里插入图片描述
4、导入包和配置


from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

prefs = {'credentials_enable_service': False,
         'profile.password_manager_enabled': False,
         'profile.managed_default_content_settings.images': 2}

chrome_option = webdriver.ChromeOptions()
# 这个开发者模式,不能少,配合第三步改chromedriver的,不然是不能自动登录的
chrome_option.add_experimental_option('excludeSwitches', ['enable-automation'])  
chrome_option.add_experimental_option("prefs", prefs)
chrome_option.add_argument(
    'User-Agent=Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36'
)
driver = webdriver.Chrome(options=chrome_option)
wait = WebDriverWait(driver, 10)

5、登录函数


def login(TB_username,TB_password):
    driver.get('https://login.taobao.com/member/login.jhtml')
    username = wait.until(
        EC.presence_of_element_located(
            (By.CSS_SELECTOR, '#TPL_username_1'))
    )
    password = wait.until(
        EC.presence_of_element_located(
            (By.CSS_SELECTOR, '#TPL_password_1'))
    )
    username.send_keys(TB_username)
    password.send_keys(TB_password)
    login_submit = wait.until(
        EC.presence_of_element_located(
            (By.CSS_SELECTOR, '#J_SubmitStatic'))
    )
    login_submit.click()

TB_username = ""  # 淘宝登录用户名
TB_password = ""  # 登录密码
login(TB_username, TB_password)

6、爬取数据具体逻辑的代码这个根据自己需求而定就不发,照需求弄就得了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!