selenium + phantomJS 小Demo

借助selenium和phantomJS抓取淘宝美食信息.

配置

数据库配置

1
2
3
4
#样例
MONGO_URL='localhost'
MONGO_DB='taobao'
MONGO_TABLE='product'

声明浏览器

1
browser=webdriver.PhantomJS(service_args=SERVICE_ARGS)

浏览器配置

1
2
#不加载图片、开启缓存
SERVICE_ARGS=['--load-images=false','--disk-cache=true']

搜索

  1. 给定url,请求页面
  2. 判断加载成功,定位搜索框input,搜索按钮submit
  3. 搜索框中输入信息,input.send_keys(‘美食’);点击搜索按钮,submit.click()
  4. 等待加载,获取结果总页数(正则提取数字)

翻页

采用页面跳转,即输入到第X页然后点击确定。

  1. 判断加载成功,定位跳转按钮,页码框
  2. 清除页码框中原始信息,输入页码,点击跳转按钮
  3. 判断翻页成功:高亮页码 == 页码框中的数 ==> text_to_be_present_in_element()

页面解析

  1. 判断加载是否成功
  2. 获取page_source
  3. 利用css解析器或者xpath,对于itemlist中的每一个item,提取相关信息
  4. 存入数据库

注意

抛出异常