2021.3.20 selenium与无头浏览器
PhantomJS好像两年前就不再更新了,所以用chrome的无头模式做爬虫,无头浏览器就是指没有操作界面的浏览器,可以自动执行操作指令
例如:使用chrome的无头模式打开百度并且搜索“网络爬虫”,爬取搜索结果页的页面源码,代码如下:
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time import sys import io sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030') # 改变标准输出的默认编码 options=webdriver.ChromeOptions() options.add_argument("--headless") driver = webdriver.Chrome(executable_path='E:\chromedriver.exe',options=options) driver.get("http://www.baidu.com") assert "百度" in driver.title elem = driver.find_element_by_name("wd") elem.clear() elem.send_keys("网络爬虫") elem.send_keys(Keys.RETURN) time.sleep(3) assert "网络爬虫." not in driver.page_source print (driver.page_source) driver.close()
其中
elem = driver.find_element_by_name("wd")
elem.clear()
elem.send_keys(u"网络爬虫")
elem.send_keys(Keys.RETURN)
time.sleep(3)
是对浏览器进行操作
另外需要注意我是用的python3.8需要改变标准输出默认编码格式,而python2.x则不需要。