1. 下载Python3.5.1安装包

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

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

2.2 默认全选,Next
python23_3.png

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

2.4 等待安装完成
python23_5.png

python23_6.png

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


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


3.1.2 同检查python是否安装成功一样,使用快捷键win + R 或 右键开始选择运行,输入cmd回车,打开命令提示符窗口,然后
  1. pip install E:\demo\lxml-3.6.4-cp35-cp35m-win_amd64.whl(下载的lxml库whl文件存放路径)
复制代码
可能碰到问题,pip的版本低了,需要更新一下pip的版本。更新pip版本命令:
  1. python -m pip install -U pip
复制代码
更新完成后,再次使用pip命令:
  1. pip install E:\demo\lxml-3.6.4-cp35-cp35m-win_amd64.whl
复制代码
python23_9.png


3.2 Lxml库安装成功后,环境就准备好了, 可以开始敲代码了
3.2.1 引入Gooseeker规则提取器模块gooseeker.py(引入该模块的原因和价值),在自定义目录下创建gooseeker.py文件,如:这里为E:\Demo\gooseeker.py,再以记事本打开,复制下面的代码粘贴
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. # 模块名: gooseeker
  4. # 类名: GsExtractor
  5. # Version: 2.0
  6. # 说明: html内容提取器
  7. # 功能: 使用xslt作为模板,快速提取HTML DOM中的内容。
  8. # released by 集搜客(http://www.gooseeker.com) on May 18, 2016
  9. # github: https://github.com/FullerHua/jisou/core/gooseeker.py

  10. from urllib import request
  11. from urllib.parse import quote
  12. from lxml import etree
  13. import time
  14. import requests

  15. class GsExtractor(object):
  16.     def _init_(self):
  17.         self.xslt = ""
  18.     # 从文件读取xslt
  19.     def setXsltFromFile(self , xsltFilePath):
  20.         file = open(xsltFilePath , 'r' , encoding='UTF-8')
  21.         try:
  22.             self.xslt = file.read()
  23.         finally:
  24.             file.close()
  25.     # 从字符串获得xslt
  26.     def setXsltFromMem(self , xsltStr):
  27.         self.xslt = xsltStr
  28.     # 通过GooSeeker API接口获得xslt
  29.     def setXsltFromAPI(self , APIKey , theme, middle=None, bname=None):
  30.         apiurl = "http://www.gooseeker.com/api/getextractor?key="+ APIKey +"&theme="+quote(theme)
  31.         if (middle):
  32.             apiurl = apiurl + "&middle="+quote(middle)
  33.         if (bname):
  34.             apiurl = apiurl + "&bname="+quote(bname)
  35.         #apiconn = request.urlopen(apiurl)
  36.         #self.xslt = apiconn.read()
  37.         resp = requests.get(apiurl)
  38.         self.xslt = resp.content        
  39.     # 返回当前xslt
  40.     def getXslt(self):
  41.         return self.xslt
  42.     # 提取方法,入参是一个HTML DOM对象,返回是提取结果
  43.     def extract(self , html):
  44.         xslt_root = etree.XML(self.xslt)
  45.         transform = etree.XSLT(xslt_root)
  46.         result_tree = transform(html)
  47.         return result_tree
  48.     # 提取方法,入参是html源码,返回是提取结果
  49.     def extractHTML(self , html):
  50.         doc = etree.HTML(html)
  51.         return self.extract(doc)

复制代码

3.2.2 在提取器模块gooseeker.py同级目录下创建一个.py后缀文件,如这里为E:\Demo\first.py,再以记事本打开,敲入代码:
  1. # -*- coding: utf-8 -*-
  2. # 使用gsExtractor类的示例程序
  3. # 访问集搜客论坛,以xslt为模板提取论坛内容
  4. # xslt保存在xslt_bbs.xml中
  5. # 采集结果保存在result.xml中

  6. import os
  7. from urllib import request
  8. from lxml import etree
  9. from gooseeker import GsExtractor

  10. # 访问并读取网页内容
  11. url = "http://www.gooseeker.com/cn/forum/7"
  12. conn = request.urlopen(url)
  13. doc = etree.HTML(conn.read())

  14. bbsExtra = GsExtractor()   
  15. bbsExtra.setXsltFromAPI("31d24931e043e2d5364d03b8ff9cc77e" , "gooseeker_bbs_xslt")   # 设置xslt抓取规则
  16. result = bbsExtra.extract(doc)   # 调用extract方法提取所需内容

  17. # 当前目录
  18. current_path = os.getcwd()
  19. file_path = current_path + "/result.xml"

  20. # 保存结果
  21. open(file_path,"wb").write(result)

  22. # 打印出结果
  23. print(str(result).encode('gbk','ignore').decode('gbk'))
复制代码

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


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

4. 总结

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

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

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

GooSeeker开源Python网络爬虫GitHub源

6. 文章修改历史

2016-09-27:V1.02016-10-25:3.2.1代码补充



举报 使用道具
| 回复

共 5 个关于本帖的回复 最后回复于 2021-5-14 17:59

zuoyuan 初级会员 发表于 2021-5-14 15:35:27 | 显示全部楼层
image.png
为什么会报错
举报 使用道具
gz51837844 管理员 发表于 2021-5-14 16:55:28 | 显示全部楼层

你贴图中的first.py, 代码部分实现了什么功能? 有没有定义内容提取器部分? 如果有的话, 把提取器也就是规则的名字提供下, 我安排工程师测试下

举报 使用道具
gz51837844 管理员 发表于 2021-5-14 17:13:15 | 显示全部楼层
工程师也会对这个帖子的从安装python3.5到查看结果文件的每一步做一下测试
如果发现有失效部分, 会做更新
举报 使用道具
Fuller 管理员 发表于 2021-5-14 17:35:33 | 显示全部楼层
可能是爬虫规则失效了,我们检查一下规则,这个规则很久没有使用了
举报 使用道具
gz51837844 管理员 发表于 2021-5-14 17:59:43 | 显示全部楼层
工程师测试过了, 发现确实有2个地方需要更新, 现在已经更新并测试OK。
你可以再试试。注意:上面的gooseeker.py中的代码有更新, 请重新复制到本地覆盖原代码。first.py本次没有更新
下图是我测试得到的结果:
QQ截图20210514175551.png

举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-3-29 10:20