selenium&PhantomJS笔记

配置pip文件

Windows下pip 配置文件的位置
%HOME%/pip/pip.ini

linux下安装pip,以Debian Linux为例
su -
apt-get install python-pip

linux下pip的配置文件是$HOME/.pip/pip.conf

验证安装源是否修改成功
su -
python -m pip install -upgrade pip

 pip文件内容

[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple
#index-url = https://pypi.hustunique.com/simple
#index-url = https://pypi.douban.com/simple

 

selenium模拟浏览器操作

Windows安装
pip install selenium

Linux安装
apt-get install selenium

查看selenium支持的浏览器
from selenium import webdriver
help(webdriver)


无头浏览器phantomJs
直接将其exe文件复制到python的安装目录中。

 

将webdriver帮助文档输出到文件

from selenium import webdriver
import sys
browser = webdriver.PhantomJS()
out = sys.stdout
sys.stdout = open('browserHelp.txt','w')
help(browser)
sys.stdout.close()
sys.stdout = out
browser.quit()
exit()


示例:百度搜索
# 打开网站主页面
from selenium import webdriver
browser = webdriver.PhantomJS()
browser.get("https://www.baidu.com")
# 智能等待,最长等待10秒
browser.implicitly_wait(10)


# 获取搜索结果,定位有效数据的位置或表单框架
find_element(self,by='id',value=None) # 取第一个符合条件的值
find_elements(self,by='id',value=None) # 取所有符合条件的值
这两个函数可以替代下面所有函数,如find_element(by='id',value='abc') == find_element_by_id("abc")

find_element_by_class_name(self,name)
find_element_by_css_selector(self,css_selector)
find_element_by_id(self,id)
find_element_by_link_text(self,link_text)
find_element_by_name(self,name)
find_element_by_partial_link_text(self,link_text)
find_element_by_tag_name(self,name)
find_element_by_xpath(self,xpath)


# 查找文本框
textElement = browser.find_element_by_class_name("s_ipt")
textElement = browser.find_element_by_id("kw")

textElement.clear()
textElement.send_keys("python selenium")

# 查找提交按扭
submitElement = browser.find_element_by_class_name("btn self-btn bg s_btn")
submitElement = browser.find_element_by_id("su")
submitElement.click()
print browser.title


# 定位有效数据
resultElements = browser.find_elements_by_class_name("c-tools")
len(resultElements)

# 一般来说定位结果用by_xpath或by_css比较方便
# 从位置中获取有效数据
element.text
element.get_attribute(name)

value = resultElements[0].get_attribute("data-tools")
valueDic = eval(value)

print valueDic.get("title").decode("utf8")
print valueDic.get("url")

 

posted on 2017-01-12 18:58  孔扎根  阅读(394)  评论(0编辑  收藏  举报

导航