1. 下载Python3.5.1安装包

1.1 进入python官网,点击menu->downloads,网址:https://www.python.org/downloads/ 
1.2 根据系统选择32位还是64位,这里下载的可执行exe为64位安装包

2. 安装Python3.5
2.1 双击打开安装包,选择自定义路径(注意安装路径中尽量不要含有有中文或者空格),然后选中Add Python 3.5 to PATH(将Python安装路径添加到系统变量Path中,这样做以后在任意目录下都可以执行pyhton命令了)

2.2 默认全选,Next

2.3 修改安装路径,勾选加上Install for all user为所有用户安装和Precompile standard library 预编译标准库,然后点击Install

2.4 等待安装完成

2.5 验证,使用快捷键win + R 或 右键开始选择运行,输入cmd回车,打开命令提示符窗口,然后输入python->回车,若出现python版本信息则软件安装完成

3. 简单实践,敲一个简单小爬虫程序
3.1 安装lxml库,由于直接使用pip lxml 对于3.0x以上的版本来说经常会出现版本不适应而失败,所以这里介绍直接使用whl文件安装
3.1.1 下载对应python3.5版本的lxml库,下载网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml

3.1.2 同检查python是否安装成功一样,使用快捷键win + R 或 右键开始选择运行,输入cmd回车,打开命令提示符窗口,然后

pip install E:\demo\lxml-3.6.4-cp35-cp35m-win_amd64.whl(下载的lxml库whl文件存放路径)

可能碰到问题,pip的版本低了,需要更新一下pip的版本。更新pip版本命令:

python -m pip install -U pip

更新完成后,再次使用pip命令:

pip install E:\demo\lxml-3.6.4-cp35-cp35m-win_amd64.whl

3.2 Lxml库安装成功后,环境就准备好了, 可以开始敲代码了
3.2.1 引入Gooseeker规则提取器模块gooseeker.py(引入该模块的原因和价值),在自定义目录下创建gooseeker.py文件,如:这里为E:\Demo\gooseeker.py,再以记事本打开,复制下面的代码粘贴

#!/usr/bin/python
# -*- coding: utf-8 -*-
# 模块名: gooseeker
# 类名: GsExtractor
# Version: 2.0
# 说明: html内容提取器
# 功能: 使用xslt作为模板,快速提取HTML DOM中的内容。
# github: https://github.com/FullerHua/jisou/core/gooseeker.py from urllib import request
from urllib.parse import quote
from lxml import etree
import time class GsExtractor(object):
def _init_(self):
self.xslt = ""
# 从文件读取xslt
def setXsltFromFile(self , xsltFilePath):
file = open(xsltFilePath , 'r' , encoding='UTF-8')
try:
self.xslt = file.read()
finally:
file.close()
# 从字符串获得xslt
def setXsltFromMem(self , xsltStr):
self.xslt = xsltStr
# 通过GooSeeker API接口获得xslt
def setXsltFromAPI(self , APIKey , theme, middle=None, bname=None):
apiurl = "http://www.A.com/api/getextractor?key="+ APIKey +"&theme="+quote(theme) 这里要将A替换成gooseeker
if (middle):
apiurl = apiurl + "&middle="+quote(middle)
if (bname):
apiurl = apiurl + "&bname="+quote(bname)
apiconn = request.urlopen(apiurl)
self.xslt = apiconn.read()
# 返回当前xslt
def getXslt(self):
return self.xslt
# 提取方法,入参是一个HTML DOM对象,返回是提取结果
def extract(self , html):
xslt_root = etree.XML(self.xslt)
transform = etree.XSLT(xslt_root)
result_tree = transform(html)
return result_tree
# 提取方法,入参是html源码,返回是提取结果
def extractHTML(self , html):
doc = etree.HTML(html)
return self.extract(doc)

3.2.2 在提取器模块gooseeker.py同级目录下创建一个.py后缀文件,如这里为E:\Demo\first.py,再以记事本打开,敲入代码:

# -*- coding: utf-8 -*-
# 使用gsExtractor类的示例程序
# 访问集搜客论坛,以xslt为模板提取论坛内容
# xslt保存在xslt_bbs.xml中
# 采集结果保存在result.xml中 import os
from urllib import request
from lxml import etree
from gooseeker import GsExtractor # 访问并读取网页内容
url = "http://www.A.B/cn/forum/7" #这里要将A和B分别替换为gooseeker和com
conn = request.urlopen(url)
doc = etree.HTML(conn.read()) bbsExtra = GsExtractor()
bbsExtra.setXsltFromAPI("31d24931e043e2d5364d03b8ff9cc77e" , "gooseeker_bbs_xslt") # 设置xslt抓取规则
result = bbsExtra.extract(doc) # 调用extract方法提取所需内容 # 当前目录
current_path = os.getcwd()
file_path = current_path + "/result.xml" # 保存结果
open(file_path,"wb").write(result) # 打印出结果
print(str(result).encode('gbk','ignore').decode('gbk'))

3.2.3 执行first.py,使用快捷键win + R 或 右键开始选择运行,输入cmd回车,打开命令提示窗口,进入first.py文件所在目录,输入命令 :python first.py 回车

3.2.4 查看保存结果文件,进入first.py文件所在目录,查看名称为result的xml文件(即采集结果)

4. 总结

安装步骤还是很简单,主要需要注意的是:
1.  对应系统版本安装;
2.  将安装路径加入系统环境变量Path。

后面将会讲到如何结合Scrapy快速开发Python爬虫。

5. 集搜客GooSeeker开源代码下载源

GooSeeker开源Python网络爬虫GitHub源

6. 文章修改历史

2016-10-20:V1.0

为编写网络爬虫程序安装Python3.5的更多相关文章

  1. Android网络爬虫程序(基于Jsoup)

    摘要:基于 Jsoup 实现一个 Android 的网络爬虫程序,抓取网页的内容并显示出来.写这个程序的主要目的是抓取海投网的宣讲会信息(公司.时间.地点)并在移动端显示,这样就可以随时随地的浏览在学 ...

  2. python3编写网络爬虫20-pyspider框架的使用

    二.pyspider框架的使用 简介 pyspider是由国人binux 编写的强大的网络爬虫系统 github地址 : https://github.com/binux/pyspider 官方文档 ...

  3. python3编写网络爬虫23-分布式爬虫

    一.分布式爬虫 前面我们了解Scrapy爬虫框架的基本用法 这些框架都是在同一台主机运行的 爬取效率有限 如果多台主机协同爬取 爬取效率必然成倍增长这就是分布式爬虫的优势 1. 分布式爬虫基本原理 1 ...

  4. 利用Python编写网络爬虫下载文章

    #coding: utf-8 #title..href... str0='blabla<a title="<论电影的七个元素>——关于我对电影的一些看法以及<后会无期 ...

  5. 使用Python写的第一个网络爬虫程序

    今天尝试使用python写一个网络爬虫代码,主要是想訪问某个站点,从中选取感兴趣的信息,并将信息依照一定的格式保存早Excel中. 此代码中主要使用到了python的以下几个功能,因为对python不 ...

  6. 吴裕雄--天生自然python学习笔记:编写网络爬虫代码获取指定网站的图片

    我们经常会在网上搜索井下载图片,然而一张一张地下载就太麻烦了,本案例 就是通过网络爬虫技术, 一次性下载该网站所有的图片并保存 . 网站图片下载并保存 将指定网站的 .jpg 和 .png 格式的图片 ...

  7. python3编写网络爬虫18-代理池的维护

    一.代理池的维护 上面我们利用代理可以解决目标网站封IP的问题 在网上有大量公开的免费代理 或者我们也可以购买付费的代理IP但是无论是免费的还是付费的,都不能保证都是可用的 因为可能此IP被其他人使用 ...

  8. python3编写网络爬虫19-app爬取

    一.app爬取 前面都是介绍爬取Web网页的内容,随着移动互联网的发展,越来越多的企业并没有提供Web页面端的服务,而是直接开发了App,更多信息都是通过App展示的 App爬取相比Web端更加容易 ...

  9. python3编写网络爬虫21-scrapy框架的使用

    一.scrapy框架的使用 前面我们讲了pyspider 它可以快速的完成爬虫的编写 不过pyspider也有一些缺点 例如可配置化不高 异常处理能力有限对于一些反爬虫程度非常强的网站 爬取显得力不从 ...

随机推荐

  1. oracle 数据库用户登录相关

    oracle 数据库的安装 : 一: 安装的时候可以设定解锁的用户  一般默认是解锁soctt用户和hr用户  : oracle的超级用户是sysdba这个用户在安装的时候也可以设置密码,一 般自己使 ...

  2. 利用Azure高级存储搭建高性能Linux服务器(1)

    目前Azure针对虚拟机提供两种类型的存储,一种是标准存储,基于HDD的,一种是高性能存储Premium Storage(在下文中简称PS),基于SSD的.针对用户高性能,低延迟,I/O密集型的应用, ...

  3. 【转帖】C# DllImport 系统调用使用详解 托管代码的介绍 EntryPoint的使用

    1      DLLImport的使用 using System; using System.Runtime.InteropServices; //命名空间 class Example { //用Dl ...

  4. [置顶] Android四大组件之BroadcastReceiver

    Android四大组件之BroadcastReceiver Broadcast Receiver 广播接收器,是一种负责接收广播消息并对消息做出响应的组件,和Service一样并不提供与用户交互的UI ...

  5. log4j日志分模块打印,同时不打印到控制台上

    由于定时刷新程序的启用,导致catalina.out配置文件中打入大量日志,致使程序调试困难.          无法正常查看日志.所以客户要求将性能流量配置日志迁移出catalina.out目录.修 ...

  6. 2015第16周六学习java建议

    学习Java 建议: 尽量用 google 查找技术资料. 有问题在 stackoverflow 找找,大部分都已经有人回答. 多看官方的技术文档. ibm developerworkers 的文章质 ...

  7. Longest Valid Parentheses 解答

    Question Given a string containing just the characters '(' and ')', find the length of the longest v ...

  8. QQ聊天界面的布局和设计(IOS篇)-第一季

    我写的源文件整个工程会再第二季中发上来~,存在百度网盘, 感兴趣的童鞋, 可以关注我的博客更新,到时自己去下载~.喵~~~ QQChat Layout - 第一季 一.准备工作 1.将假数据messa ...

  9. SimHash算法

    短文本合并重复(去重)的简单有效做法 - 旁观者 - 博客园 短文本合并重复(去重)的简单有效做法 SimHash算法 - ACdreamer - 博客频道 - CSDN.NET SimHash算法

  10. Shell下通过echo+telnet在远端执行命令

    创建脚本cmd.sh,用于输入telnet的用户与密码,以及生成远端需要执行的命令   执行命令 MY_SIGN=/tmp/sign; (sh cmd.sh ) | (telnet localhost ...