快捷导航
1, 引言

注释:上一篇《Python爬虫实战(3):安居客房产经纪人信息采集》,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功。本篇是针对动态网页的数据采集编程实战。

Python开源网络爬虫项目启动之初,我们就把网络爬虫分成两类:即时爬虫和收割式网络爬虫。为了适应各种应用场景,GooSeeker的整个网络爬虫产品线包含了四类产品,如下图所示:


爬虫定位1.png


本实战是上图中的“独立python爬虫”的一个实例,以采集豆瓣小组讨论话题(https://www.douban.com/group/haixiuzu/discussion?start=0 )信息为例,记录整个采集流程,包括python和依赖库的安装,即便是python初学者,也可以跟着文章内容成功地完成运行。

2,Python和相关依赖库的安装

  • 运行环境:Windows10

2.1,安装Python3.5.2


2.2,Lxml 3.6.0
  • Lxml官网地址: http://lxml.de/
  • Windows版安装包下载: http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
  • 对应windows下python3.5的安装文件为 lxml-3.6.0-cp35-cp35m-win32.whl
  • 下载完成后,在windows下打开一个命令窗口,,切换到刚下载的whl文件的存放目录,运行pip install lxml-3.6.0-cp35-cp35m-win32.whl

2.3,下载网页内容提取器程序


网页内容提取器程序是GooSeeker为Python开源项目发布的一个类,使用这个类,可以大大减少数据采集规则的调试时间,具体参看《Python即时网络爬虫项目: 内容提取器的定义

2.4,安装selenium
  • pip install selenium

2.5,PhantomJS下载
  • 下载地址 http://phantomjs.org/download.html
  • 把下载得到的phantomjs-2.1.1-windows.zip解压到本机的某个文件夹下
  • 把解压后的文件夹中的phantomjs.exe的完整路径加文件名记录下来,用来替换下面代码的 browser = webdriver.PhantomJS(executable_path='C:\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe') 这一行中的两个单引号之间的内容。

3,网络爬虫的源代码
  1. # _*_coding:utf8_*_
  2. # douban.py
  3. # 爬取豆瓣小组讨论话题
  4. # 2016-07-11 v1.0
  5. # 2017-08-03 v1.1

  6. from urllib import request
  7. from lxml import etree
  8. from gooseeker import GsExtractor
  9. from selenium import webdriver
  10. import time