首先导入包
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
然后需要下载一个浏览器的驱动程序如谷歌的chromedriver,这里使用国内镜像网址:http://npm.taobao.org/mirrors/chromedriver/
将下载好的文件放到python的Scripts目录下
phantomjs:无头浏览器
https://phantomjs.org/download.html
#------------正常开启浏览器
# chrome = webdriver.Chrome()
#------------静默开启浏览器不弹窗口,防识别
option = webdriver.ChromeOptions()
# option.add_argument('headless') #headless是浏览器的静默模式
option.add_experimental_option('excludeSwitches',['enable-automation']) # 防止被网站识别(不会被浏览器检测到是自动化测试)
chrome = webdriver.Chrome(options=option) #参数加上 options=option可以隐藏浏览器弹框
chrome.get("http://www.baidu.com") #这个方法仅仅请求不返回数据
assert "百度" in chrome.title #如果没有百度在title就会报错
#-----------通过id找到结点
elem2 = chrome.find_element_by_id("s-top-left")
#-----------得到文本内容
print(elem2.text)
#------------得到指定元素的html(这里注意大小写不要写错)
print(elem2.get_attribute('innerHTML'))
#------------通过xPath锁定搜索框
elem = chrome.find_element_by_xpath('//input[@id="kw"]')
elem.clear() #清空搜索框数据
elem.send_keys("pycon") #输入数据
#------------三种方式点击按钮
button = chrome.find_element_by_id('su') #百度搜索按钮
button.click() #第一种
# chrome.execute_script("arguments[0].click();", button) #第二种
# elem.send_keys(Keys.ENTER) #模拟键盘回车 第三种方式
#-------------模拟下拉到底部(有时候一些信息必须下拉到底部才能出现)
time.sleep(1) #下拉需要一定反应时间
chrome.execute_script('window.scrollTo(0,document.body.scrollHeight)')
#------------获得当前页面的html源码
# print(chrome.page_source)
#------------翻页
for i in range(0,75): #根据分析最多翻页到75
next = chrome.find_elements_by_class_name('n') #得到上一页和下一页
for i in next:
if '下一页' in i.text: #如果存在下一页
i.click() #点击下一页按钮
time.sleep(0.7)
#close关闭当前页面,quit()退出浏览器
# chrome.close()
找到了一个比较详细的selenium的操作:
https://www.cnblogs.com/songzhixue/p/11270593.html