[python] Crawler notes (ten) selenium simulation login & evasion detection

Simulated login:

from lxml import etree
from selenium import webdriver
from time import sleep
#模拟登录qq空间
#加载谷歌驱动程序
bro=webdriver.Chrome('./chromedriver.exe')
#访问qq空间
bro.get('https://qzone.qq.com/')

#切换作用域
bro.switch_to.frame('login_frame')

#标签定位 账号密码登录
a_tag=bro.find_element_by_id('switcher_plogin')
#点击
a_tag.click()
#标签定位
username_tag=bro.find_element_by_id('u')
password_tag=bro.find_element_by_id('p')
#标签交互:
str1=input('请输入账号:')
username_tag.send_keys(str1)
str2=input('请输入密码:')
password_tag.send_keys(str2)

#登录按钮
btn=bro.find_element_by_id('login_button')
btn.click()

sleep(10)
bro.quit()

Headless browser code:
https://blog.csdn.net/zhangju414/article/details/111480360

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from time import sleep
#创建一个参数对象,用来控制chrome以无界面模式打开

chrome_options = Options()
chrome_options.add_argument('--headless' )
chrome_options.add_argument ('--disable-gpu' )

#驱动路径

path = './chromedriver.exe'
#创建浏览器对象

browser = webdriver.Chrome(executable_path=path, options=chrome_options)
#上网

url = 'http://www.baidu.com/'
browser.get(url)
sleep(3)
browser.save_screenshot( 'baidu.png' )
browser.quit()

Avoid detection:

from selenium import webdriver
#实现无可视化
from selenium.webdriver.chrome.options import Options
#实现规避检测
from selenium.webdriver import ChromeOptions
from time import sleep
#创建一个参数对象,用来控制chrome以无界面模式打开

chrome_options = Options()
chrome_options.add_argument('--headless' )
chrome_options.add_argument ('--disable-gpu' )

#驱动路径
#规避检测
option = ChromeOptions()
option.add_experimental_option('excludeSwitches',['enable-automation'])

path = './chromedriver.exe'
#创建浏览器对象

browser = webdriver.Chrome(executable_path=path, chrome_options=chrome_options, options=option)
#上网

url = 'http://www.baidu.com/'
browser.get(url)
sleep(3)
browser.save_screenshot( 'baidu.png' )
browser.quit()

Guess you like

Origin blog.csdn.net/Sgmple/article/details/112224907