selenium+python headless访问网页

最近学python爬虫,发现请求的页面如果是内容是异步加载的,则没办法用BeautifulSoup这些库爬取异步加载的数据。

selenium是自动化测试工具,可以调用浏览器加载页面数据(包括异步加载的数据),通过selenium可以很便捷爬取页面所有信息

先下载python的selenium库

pip install selenium

1、selenium+phantomjs(已夭折)

官网:http://chromedriver.storage.googleapis.com/index.html

phantomjs是一个headless的web工具,提供强大的JavaScript api,但是selenium最新版已经不支持phantomjs

如果不用selenium情况下,还是可以单独用phantomjs做数据爬取

2、selenium+Firefox

安装火狐浏览器

下载geckodriver

https://github.com/mozilla/geckodriver/releases

from selenium import webdriver
options = webdriver.FirefoxOptions()
#options.set_headless(True)
options.add_argument("--headless") #设置火狐为headless无界面模式
options.add_argument("--disable-gpu")
driver = webdriver.Firefox(firefox_options=options, executable_path="D:\\开发相关\\开发资料\\geckodriver-v0.21.0-win64\\geckodriver")
driver.get("https://s.taobao.com/search/?")
driver.get_screenshot_as_file("C:\\Users\\Administrator\\Desktop\\test.png")
driver.close()

设置firefxo为headless模式

options.add_argument("--headless")

指定firefox的设置(这里不需要指定executable_path)

driver=webdriver.Firefox(firefox_options=options)

3、selenium+chrome

安装谷歌浏览器

下载chromedriver(要根据本机chrome浏览器版本,下载对应的chromedriver版本,否则会运行出错)

http://chromedriver.storage.googleapis.com/index.html

chromedriver和chrome版本对照表

selenium+python headless访问网页_第1张图片

下载后解压文件

selenium+python headless访问网页_第2张图片


from selenium import webdriver
# from selenium.webdriver.chrome.options import Options

# chrome_options = Options()
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
# chrome_options.add_argument("--disable-gpu")
driver = webdriver.Chrome(chrome_options=chrome_options,executable_path="D:\\开发\chromedriver_win32\\chromedriver")
driver.get("https://s.taobao.com/search/?")
driver.get_screenshot_as_file("C:\\Users\\Administrator\\Desktop\\test.png")
driver.close()

设置chrome为headless模式

options.add_argument("--headless")

指定chromedriver路径

driver = webdriver.Chrome(chrome_options=chrome_options,executable_path="D:\\开发\chromedriver_win32\\chromedriver")

其中chrome headless运行得特别慢,不知道为啥

运行结果在桌面生成网页截图

selenium+python headless访问网页_第3张图片

selenium+python headless访问网页_第4张图片

你可能感兴趣的:(python)