zoukankan      html  css  js  c++  java
  • 为编写网络爬虫程序安装Python3.5

    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:demolxml-3.6.4-cp35-cp35m-win_amd64.whl(下载的lxml库whl文件存放路径)

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

    python -m pip install -U pip

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

    pip install E:demolxml-3.6.4-cp35-cp35m-win_amd64.whl


    3.2 Lxml库安装成功后,环境就准备好了, 可以开始敲代码了
    3.2.1 引入Gooseeker规则提取器模块gooseeker.py(引入该模块的原因和价值),在自定义目录下创建gooseeker.py文件,如:这里为E:Demogooseeker.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:Demofirst.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

  • 相关阅读:
    借贷宝什么鬼 砸钱推广是妙招还是险棋
    div+css 怎么让一个小div在另一个大div里面 垂直居中
    php重新整理数组索引
    JS 得细心的坑位
    chrome表单自动填充导致input文本框背景变成偏黄色问题解决
    phpstorm配置xdebug
    MySQLi基于面向对象的编程
    PHP中开启gzip压缩的2种方法
    SVN创建主干,分支、合并分支
    懒加载和预加载【转载】
  • 原文地址:https://www.cnblogs.com/gooseeker/p/5980346.html
Copyright © 2011-2022 走看看