selenium+phantomjs,headerlesschrome
一.selenium+phantomjs
1.selenium是什么:是一个浏览器的自动化测试框架,通过selenium可以写代码,通过运行代码,可以让谷歌浏览器做自动化的工作。
实现:
1.安装:pip install selenium
演示:操作谷歌浏览器,其实操作的是谷歌浏览器的驱动,由驱动来驱动浏览器,既然这样,先下载驱动.(要下载对应版本的驱动)
谷歌驱动下载地址
http://chromedriver.storage.googleapis.com/index.html
浏览器的方法
http://blog.youkuaiyun.com/huilan_same/article/details/51896672
浏览器的方法
find_element_by_id 根据id查找指定的对象
find_elements_by_name 根据name查找
find_elements_by_xpath 根据xpath查找
find_elements_by_tag_name 根据标签名称进行查找
find_elements_by_class_name 根据类名进行查找
find_elements_by_css_selector 根据选择器进行查找
find_elements_by_link_text 根据a链接的内容进行查找
实例:
from selenium import webdriver 英[səˈli:niəm]
import time
#根据谷歌驱动,创建谷歌浏览器对象
path = r'C:\Users\Administrator\Downloads\chromedriver.exe'
browser = webdriver.Chrome(path)
#打开百度
firsturl = 'http://www.baidu.com/'
browser.get(firsturl)
time.sleep(2)
# 查找输入框
myinput = browser.find_element_by_id('kw')
#向框里面写内容
myinput.send_keys('周杰伦')
time.sleep(3)
#查找点击一下按钮
button =browser.find_element_by_id('su')
button.click()
time.sleep(5)
#查找周杰伦百度百科
#注意:按内容查找必须是a链接的完整文本内容才可以
baike=browser.find_elements_by_link_text('周杰伦_百度百科')[0]
baike.click()
time.sleep(5)
#退出浏览器
browser.quit()
2.phantomjs
phantomjs是什么,是一款浏览器,是无界面的浏览器,它的设计本质不是用来上网的,既然是浏览器,就有浏览器的功能。就可以解释html,css,js,在爬虫的过程中,经常会有这种反爬机制:html是动态加载的,因为js的dom操作,可以动态的给网页添加和删除内容,遇到DOM,如何解决:
(1)捕获接口,从接口解析数据.
(2)通过phantomjs爬取(大招)(效率不高).
专业图片网站:防盗链(meizitu)
还有一种反爬机制:懒加载技术
真正上网的时候,会遇到滚动条加载,这种网站信息难以捕获
可以通过phantomjs模拟滚动条滚动到底部
from selenium import webdriver
import time
# 找到phantomjs路径
path = r'E:\phantomjs\phantomjs-2.1.1-windows\bin\phantomjs.exe'2.1.1-windows\bin\phantomjs.exe'
# 创建浏览器对象
browser = webdriver.PhantomJS(path)
browser.get('http://www.baidu.com/')
time.sleep(2)
# 拍照片的方式
browser.save_screenshot(r'phantomjs\baidu1.png')
# 往下要执行的操作,就是走一步拍一步的过程
browser.find_element_by_id('kw').send_keys('美女')
browser.find_element_by_id('su').click()
time.sleep(2)
browser.save_screenshot(r'phantomjs\baidu2.png')
browser.quit()
滚动到底部
from selenium import webdriver
import time