1, 引言

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

本实战是上图中的“独立python爬虫”的一个实例,以采集安居客房产经纪人(http://shenzhen.anjuke.com/tycoon/nanshan/p1/ )信息为例,记录整个采集流程,包括python和依赖库的安装,即便是python初学者,也可以跟着文章内容成功地完成运行。

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

运行环境:Windows10

2.1,安装Python3.5.2

2.2,Lxml 3.6.0

对应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即时网络爬虫项目: 内容提取器的定义》

3,网络爬虫的源代码

# _*_coding:utf8_*_

# anjuke.py

# 爬取安居客房产经纪人

from urllib import request

from lxml import etree

from gooseeker import GsExtractor

class Spider:

def getContent(self, url):

conn = request.urlopen(url)

output = etree.HTML(conn.read())

return output

def saveContent(self, filepath, content):

file_obj = open(filepath, 'w', encoding='UTF-8')

file_obj.write(content)

file_obj.close()

bbsExtra = GsExtractor()

# 下面这句调用gooseeker的api来设置xslt抓取规则

# 第一个参数是app key,请到GooSeeker会员中心申请

# 第二个参数是规则名,是通过GooSeeker的图形化工具: 谋数台MS 来生成的

bbsExtra.setXsltFromAPI("31d24931e043e2d5364d03b8ff9cc77e" , "安居客房产经纪人")

url = "http://shenzhen.anjuke.com/tycoon/nanshan/p"

totalpages = 50

anjukeSpider = Spider()

print("爬取开始")

for pagenumber in range(1 , totalpages):

currenturl = url + str(pagenumber)

print("正在爬取", currenturl)

content = anjukeSpider.getContent(currenturl)

outputxml = bbsExtra.extract(content)

outputfile = "result" + str(pagenumber) +".xml"

anjukeSpider.saveContent(outputfile , str(outputxml))

print("爬取结束")

运行过程如下:

将上面的代码保存到anjuke.py中,和前面2.3步下载的提取器类gooseeker.py放在同一个文件夹中

打开Windows CMD窗口,切换当前目录到存放anjuke.py的路径(cd xxxxxxx)

运行 python anjuke.py

请注意:为了让源代码更整洁,也为了让爬虫程序更有通用性,抓取规则是通过api注入到内容提取器bbsExtra中的,这样还有另外一个好处:如果目标网页结构变化了,只需通过MS谋数台重新编辑抓取规则,而本例的网络爬虫代码不用修改。为内容提取器下载采集规则的方法参看《Python即时网络爬虫:API说明》。

4,爬虫结果

在项目目录下可以看到多个result**.xml文件,文件内容如下图所示:

5,总结

因为信息采集规则是通过api下载下来的,所以,本案例的源代码显得十分简洁。同时,整个程序框架变得很通用,因为最影响通用性的采集规则是从外部注入的。

6,集搜客GooSeeker开源代码下载源

7,文档修改历史

2016.07.11:V1.0

python爬虫代码房-Python爬虫实战(3):安居客房产经纪人信息采集相关推荐

  1. Python爬虫实战(3):安居客房产经纪人信息采集

    1, 引言 Python开源网络爬虫项目启动之初,我们就把网络爬虫分成两类:即时爬虫和收割式网络爬虫.为了使用各种应用场景,该项目的整个网络爬虫产品线包含了四类产品,如下图所示: 本实战是上图中的&q ...

  2. python爬虫抓取房产_Python爬虫实战(3):安居客房产经纪人信息采集

    1, 引言 Python开源网络爬虫项目启动之初,我们就把网络爬虫分成两类:即时爬虫和收割式网络爬虫.为了使用各种应用场景,该项目的整个网络爬虫产品线包含了四类产品,如下图所示: 本实战是上图中的&q ...

  3. python爬虫代码房-Python爬虫一步步抓取房产信息

    原标题:Python爬虫一步步抓取房产信息 前言 嗯,这一篇文章更多是想分享一下我的网页分析方法.玩爬虫也快有一年了,基本代码熟悉之后,我感觉写一个爬虫最有意思的莫过于研究其网页背后的加载过程了,也就 ...

  4. Python爬取安居客房产经纪人信息采集

    为了使用各种应用场景,该项目的整个网络爬虫产品线包含了四类产品,如下图所示: Python和相关依赖库的安装 运行环境:Windows10 安装Python3.5.2 Lxml 3.6.0 下载网页内 ...

  5. python爬虫代码房-python爬虫爬取链家二手房信息

    #coding=utf-8 import requests from fake_useragent import UserAgent from bs4 import BeautifulSoup imp ...

  6. Python爬取安居客房产经纪人信息

    引言 Python开源网络爬虫项目启动之初,我们就把网络爬虫分成两类:即时爬虫和收割式网络爬虫.为了使用各种应用场景,该项目的整个网络爬虫产品线包含了四类产品,如下图所示: Python和相关依赖库的 ...

  7. 爬虫系列(1):极简爬虫——基于requests和re爬取安居客上海二手房价数据

    爬虫系列(1):极简爬虫--基于requests和re爬取安居客上海二手房价数据 入坑爬虫已经有一年多,一直想好好记录下从各位前辈和大佬处学到的技术,因此开了一个爬虫系列,想借此细致地介绍和演示其中的 ...

  8. python爬虫代码-学Python=写爬虫?不用代码也能爬下95%网站的数据!

    你好,这里是BIMBOX,我是老孙. 前些天BOX群里一位小伙伴问我们,现在市面上有一千多块钱的Python网络课程,两个月学完,能入门网络爬虫,大部分网站的数据都可以爬下来,这个学费值不值得? 我们 ...

  9. python基础代码大全-python基础语法,python 代码命令大全

    python: 1.语法强制缩进 2.区分大小写:iLoop与iloop是两个变量 3.变量无需申明,但是变量赋值前无法使用:a=3合法,b=a+3合法,b=a+c不合法,因为c未赋值前不能使用 4. ...

最新文章

  1. 计算机网络的性能指标和非性能特征
  2. [转]SVN + CruiseControl.NET + NANT 自动编译提交的项目最小DEMO
  3. Disruptor并发框架-1
  4. Failed to connect to driver at XXXXXXx
  5. Requests库网络爬虫实战
  6. vue.config和editorconfig
  7. I'm genius,用游戏柄控制鼠标
  8. jquery中有.post,.get,$.getJSON为什么没postJSON
  9. Web App 前端构建(纯净版)
  10. UIView属性clipsTobounds的应用
  11. 川土微 | CA-IS3105W 全集成 DC-DC 转换器
  12. Smarty中文手册
  13. 五分钟看懂plc梯形图程序
  14. mongodb下载安装和基本操作
  15. 飞鱼星路由器如何限制外网访问服务器网站,飞鱼星路由器怎么访问指定网站
  16. 史上最详细How to Use Time Information Effectively Combining with Time Shift Module for Lipreading文章记录
  17. dom4j解析xml文件
  18. dede标签帮助手册参考
  19. 【无标题】UE4连接vr外部设备
  20. 【小程序迁移】微信小程序迁移到支付宝记坑

热门文章

  1. leanback android,Android TV之谷歌android leanback框架详解
  2. 内生性、自选择偏误、样本选择偏误
  3. 今天随机练习:题目 1969: 字符串跳步
  4. 性能测试报告(实例)
  5. 基于J2EE的公交查询系统
  6. 我是如何从 0 到 1 打造一款百万用户 App 的?
  7. 气动旋转接头如何使用
  8. pr字幕模板 炫酷科技蓝色流线条动画pr模板
  9. java界面设计 代码_Android开发——纯JAVA代码方式界面设计
  10. 国际人才考试中级的一点备考经验