1:正常情况下使用selenium爬取数据
from selenium import webdriver
bro = webdriver.Chrome('./chromedriver.exe')
bro.get('https://www.baidu.com')
page_text = bro.page_source
print(page_text)
2:使用Options类来进行取界面化
-
from selenium.webdriver.chrome.options import Options
chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') bro = webdriver.Chrome('./chromedriver.exe', chrome_options=chrome_options)
在头信息中通过上述代码引入Options类,然后在代码中实例化Options类,并且在实例化浏览器驱动程序的时候,引入参数chrome_options,进而实现无界面化的操作
3:整体代码
# 无头浏览器的使用
from selenium import webdriver
# 首先导入一个options的包,用来实现无头浏览器
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
bro = webdriver.Chrome('./chromedriver.exe', chrome_options=chrome_options)
bro.get('https://www.baidu.com')
page_text = bro.page_source
print(page_text)
4:预防检测
在使用selenium爬取数据时,有些网站会监测此请求是否是selenium发起,此时我们反反爬机制来进行伪装,进而规避检测。
- 先引入options类from selenium.webdriver import ChromeOptions
- 在代码块中添加如下语句
option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
- 在初始化浏览器驱动的时候传入options参数,之后进行正常运行即可,如下所示
bro = webdriver.Chrome('./chromedriver.exe', chrome_options=chrome_options,options=option)
5:整体代码如下
# 无头浏览器的使用
from selenium import webdriver
# 首先导入一个options的包,实现无头浏览器
from selenium.webdriver.chrome.options import Options
# 用来规避检测
from selenium.webdriver import ChromeOptions
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
bro = webdriver.Chrome('./chromedriver.exe', chrome_options=chrome_options,options=option)
bro.get('https://www.baidu.com')
page_text = bro.page_source
print(page_text)