1.爬虫需要导入的几个模块
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.common.keys import Keys
import time
import os
import sys
import logging
import httplib
import urllib
import pickle
import re
import urllib2
一般情况下,写一个普通的爬虫,以上模块就足够了.
2.常用操作解释
- 模仿用户鼠标滑动滚动屏幕事件
driver.find_element_by_tag_name("body").send_keys(Keys.PAGE_DOWN)
- 设置页面加载超时
driver.set_page_load_timeout(15)
- 当页面加载完以后,停止浏览器继续加载
driver.execute_script('window.stop()')
- 打开浏览器并加载一个网页地址
driver.get(url)
- 关闭浏览器
driver.quit()
- 设置浏览器
driver = webdriver.Firefox()
- 延时操作
time.sleep(5)
- 对字典型数据进行编码
urllib.urlencode(dic)
- 向服务器传数据
urllib2.urlopen(u)
- 浏览器最大化
driver.maximize_window() #浏览器最大化
3.寻找节点常用的方法
获取单个对象
driver.find_element_by_class_name
driver.find_element_by_xpath
driver.find_element_by_id
xpath 语法的种类比较繁多,大概有两种:
driver.find_element_by_xpath('./a[2]/span')
和dirver.find_element_by_xpath('./*[1]')
'./a[2]/span'
取出子元素中标签是a 的第二标签下面的span 标签./*[1]
取出当前元素的第一个子元素获取多个对象
driver.find_elements_by_class_name
driver.find_elements_by_xpath
driver.find_elements_by_id
获取对象的属性或者内容
node.get_attribute('src')
node.text