当前位置:首页 > >
《Python数据抓取技术与实战》电子书封面

Python数据抓取技术与实战

  • 发布时间:2019年04月12日 13:54:52
  • 作者:潘庆和,赵星驰
  • 大小:59.3 MB
  • 类别:Python电子书
  • 格式:PDF
  • 版本:清晰影印版
  • 评分:7.1

    Python数据抓取技术与实战 PDF 清晰影印版

      给大家带来的一篇关于Python相关的电子书资源,介绍了关于Python数据抓取技术与实战方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小59.3 MB,潘庆和,赵星驰编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.5。

      内容介绍

      读者评价

      从13年底开始使用python进行数据抓取,主要在业余时间进行,也是一种爱好.抓取过各类网站.其中遇到并解决了各类问题,比如对加密Flash文本内容的抓取与解密,使用Tor进行IP的获取,滑块儿类验证码,以及分布式抓取监控平台的搭建等等,随着经验的积累目前基本可以应对和解决各类抓取问题了.在这个过程中进行了一些总结, 对于一些问题总结成了论文:<<Web站点拓扑结构获取方法研究>>(2015)和<<一种通用分布式数据抓取系统的设计与实现>>(2016),其中第二篇包含了本书"监控系统"部分内容.本书(2016)也是这段时间一些工作的总结,主要介绍了一些抓取的基础知识和实施方式,但不是全部工作内容,考虑到抓取某些特定网站可能带来的问题,很多内容和实例在最后定稿时删掉了.写一本书结构既要从整体把握,还要注意细节,内容也要详略得当,对于我来说能力精力有限,可能会有不周.借助豆瓣这个平台希望能和各位读者交流,我会解答大家阅读时的问题.希望我们互相交流,共同进步.

      本书对html/xml的介绍几乎没有,对密码、验证码、动态抓取等等数据抓取会出现的可能状况的介绍也十分不够。在python的各种包、库的安装与介绍上也很不足。光安装selenium,本人花了1个多小时解决出现的报错问题,而这个细节在本书仅仅用一句话轻描淡写地带过。本书介绍的spynner库在python3不可用,而本书竟然就是用的python3。抓取的例子少得可怜。大量的篇幅花在讲解一些新手用不到、老手已经懂的内容上。

      内容简介

      如何在大数据时代获得实时的数据信息,分析挖掘、提取出有价值的信息,并以直观清晰的图形表示出关键的数量关系和概念,是一个值得研究的问题。本书通过数据抓取篇(如何获得数据信息)、数据分析篇(分析挖掘,提取出有价值的信息)、数据可视化篇(以直观清晰的图形表示出关键的数量关系和概念)详细描述数据抓取、分析、展示的整个流程,每一篇自成一体,可以单独学习掌握。

      内容节选

      python提供了json库,专门用于json格式内容的解析处理。

      json的使用比较简单,常用的方法有load、loads、dump和dumps,我们这里结合mongodb,可以存储大量的json数据。

      查询北京大学地图的url,它返回的是json格式。我们可以通过该例子说明问题,网址如下:

      http://ditu.amap.com/detail/get/detail?id=B000A816R6,代码如下:

      import requests
      import json
      url='http://ditu.amap.com/detail/get/detail?id=B000A816R6'
      res = requests.get(url).text
      json_dict=json.loads(res)
      print(type(json_dict))
      print(json_dict.keys())
      print(json_dict['data'])
      print('lng:'+json_dict['data']['base']['x']+','+'lat:'+json_dict['data']['base']['y'])

      输出部分结果如下所示:

      <class 'dict'>
      dict_keys(['status', 'data'])
      {'src_info': [], ... 'author_id': '', 'review_weburl': '', 'recommend': '', 'quality_flag': 48, 'high_quality': 0, 'aos_tag_score': 33.599999999999994, 'gold_num': 5, 'gold_type': '22', ... 'intro': '北京大学创于1898年,初名京师大学堂,是第一所国立综合性大学,也是当时中国的最高教育行政机关.辛亥革命后,于1912年改为现名. 作为新文化运动的中心和“五四”运动的策源地,作为中国最早传播马克思主义和民主科学思想的发祥地,作为中国共产党最早的活动基地,北京大学为民族的振兴和解放、国家的建设和发展、社会的文明和进步做出了不可代替...}
      lng:116.31088,lat:39.99281

      既然我们已经把数据取下来了,那么我们现在就可以用mongodb做存储了

      我们需要安装mongodb,在之前的文章中我们已经介绍过了。还要在python中安装pymongodb模块(它搭起了python和mongodb的桥梁)

      pip3 install pymongo
      #如果你安装的是anaconda,那么你还可以用以下命令安装
      conda install pymongo

      安装完成之后,我们就可以将json的处理和存储给结合起来了,环境启动如下所示:

      net start mongodb
      mongo    #这里我们已经把mongo的path加入了系统环境PATH中,所以可以不用完整路径信息
      
      #手工建立数据库
      > use bj_map   #创建名为bj_map的数据库,并转到该数据库下操作
      > db
      bj_map
      > db.createCollection("pos_info")   #在bj_map数据库下创建pos_info表
      { "ok" : 1 }    #表示该表创建成功
      
      #代码建立数据库
      #由于没有相对应的数据库和集合,mongodb会自动创建

      mongodb的端口号为27017(固定端口号更为方便,我们在配置mongodb服务的时候固定的端口号)

      import requests
      import json
      import pymongo
      
      #数据库信息配置
      ip='127.0.0.1'
      port=27017
      db_name ='bj_map'
      collection_name ='pos_info'
      
      #北京大学
      url_1='http://ditu.amap.com/detail/get/detail?id=B000A816R6'
      #清华大学
      url_2='http://ditu.amap.com/detail/get/detail?id=B000A7BD6C'
      urls=[url_1,url_2]
      
      #数据库连接
      mongo_conn=pymongo.MongoClient(ip,port)
      db=mongo_conn[db_name]
      collection=db[collection_name]
      
      for url in urls:
          try:
              print(url)
              res = requests.get(url).text
              json_dict=json.loads(res)
              collection.save(json_dict)
          except Exception as e:
              print(e)

       

      输出结果:

      http://ditu.amap.com/detail/get/detail?id=B000A816R6
      http://ditu.amap.com/detail/get/detail?id=B000A7BD6C

      我们可以在mongodb数据库中去查看

      mongo
      > db['pos_info'].count()
      2
      >db['pos_info'].find()
      {... "motto" : "爱国 进步 科学 民主", "intro" : "北京大学创于1898年,初名京师大学堂,是...}
      {... "motto" : "自强不息 厚德载物", "intro" : "清华大学(Tsinghua University),简称清华...}

      或者说我们打开pycharm,用pycharm的mongo插件查看。点击界面右侧栏中的Mongo Explorer→选择第三个图标“mongo settings”→点击右侧绿色的“+”→label和user database都填写“bj_map”,server_url默认就好,用test connection按钮测试。至此,我们就可以查看了。

      作者介绍

      潘庆和,2011年7月毕业于哈尔滨工业大学计算机科学与技术学院,计算机应用技术专业,获得工学博士学位。2011年8月至今,哈尔滨商业大学计算机与信息工程学院,计算机科学与技术专业教师,讲师,主教课程:本科专业课《操作系统》,《专业英语》,研究生《形式语言与自动机》,《大数据技术基础》。2014年获得哈尔滨商业大学优秀教师称号。

      目录

      • 第1章 Python基础1
      • 1.1 Python安装1
      • 1.2 安装pip 6
      • 1.3 如何查看帮助7
      • 1.4 第一个程序10
      • 1.5 文件操作25
      • 1.6 循环28
      • 1.7 异常30
      • 1.8 元组30
      • 1.9 列表32
      • 1.10 字典36
      • 1.11 集合38
      • 1.12 随机数39
      • 1.13 enumerate的使用40
      • 1.14 第二个例子41
      • 第2章 字符串解析46
      • 2.1 常用函数46
      • 2.2 正则表达式50
      • 2.3 BeautifulSoup 55
      • 2.4 json结构62
      • 第3章 单机数据抓取77
      • 3.1 单机顺序抓取77
      • 3.2 requests 107
      • 3.3 并发和并行抓取117
      • 第4章 分布式数据抓取137
      • 4.1 RPC的使用138
      • 4.2 Celery系统145
      • 第5章 全能的Selenium 159
      • 5.1 Selenium单机159
      • 5.2 Selenium分布式抓取178
      • 5.3 Linux无图形界面使用Selenium 188
      • 第6章 神秘的Tor 191
      • 6.1 抓取时IP封锁的问题191
      • 6.2 Tor的安装与使用192
      • 6.3 Tor多线程197
      • 6.4 Tor与Selenium结合205
      • 第7章 抓取常见问题210
      • 7.1 Flash 210
      • 7.2 桌面程序211
      • 7.3 U盘213
      • 7.4 二级三级页面214
      • 7.5 图片的处理214
      • 7.6 App数据抓取214
      • 第8章 监控框架221
      • 8.1 框架说明223
      • 8.2 监控系统实例225
      • 第9章 拥抱大数据229
      • 9.1 Hadoop生态圈229
      • 9.2 Cloudera环境搭建231

      以上就是本次介绍的Python电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:Python机器学习算法

      下一篇:Python设计模式

      展开 +

      收起 -

      下载地址:百度网盘下载
      读者留言
      码农之家

      码农之家 提供上传

      资源
      46
      粉丝
      14
      喜欢
      459
      评论
      8

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com