随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性,如:

(1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。

(2)通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。

(3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。

(4)通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。

Python语言在爬虫领域非常强大,本身有自带模块写法简单,对于网页内容的提取可以使用正则表达式或者第三方模块等,由Ajax提供动态数据通过Charles等软件进行获取,可得到xml或者json数据,转易简单。而且有多个第三方爬虫框架,如Scrapy,PySpider,Crawley,Portia等,都是爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中,使用轻松,写法简单。领先于其他语言在爬虫领域的工作。

在本章内容中,先简单介绍使用Python自带模块爬取Charles软件抓取的动态接口数据,并将数据转换成内存中的数据结构,在进行磁盘存储,存储到Excel表格中,将涉及到的图片保存在当前项目路径下。

涉及到的知识点:

  • python爬虫模块urllib的基本用法
  • json数据在python语言下的转化
  • 自动化办公:存储数据到Excel表格中
  • 爬虫爬取图片路径地址,将图片保存在本地

逻辑分析:

鉴于这个需求涉及的新知识点较多,而且相比之前项目实例逻辑思想也增多,故先分析一下思路步骤,将步骤转换成代码处理。

  1. 访问网址对应网页,使用urllib.request模块将网页内容读取到本地
  2. 将读取到的json数据,使用json模块存储内存字典中
  3. 遍历字典,将字典中每一对数据存放到要求的列表中
  4. 将生成列表中数据,通过pyexcel_xls第三方模块写入到excel表格中
  5. 存放网络图片到本地

这里面涉及到一个第三方模块pyexcel_xls,需要下载此模块,通过在命令行输入"pip install pyexcel_xls"命令,即可下载。如果提示'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件。说明在安装python软件时,没有安装pip插件或者选择没有配置python的环境变量,建议卸载python软件,重新安装。

功能实现代码:

import urllib.request
import json,pyexcel_xls
import os
'''
通过爬虫爬取网络数据--》json数据---》分析存储到excel表格---》图片保存到本地
'''
def getDataFromHtml(url,pic_forurl,folderpath):res = urllib.request.urlopen(url)res_data = res.read()#将json字符串转换成python字典json_dic = json.loads(res_data)#创建表格当中对应的数据结构excel_totallist = [["id","type","publishtime","title","summary","image"]]excel_dic = {"ten":excel_totallist}#遍历原来的字典的数据结构for res_item  in json_dic["result"]:
# 分析结构:这是每一个item应该获取到的结构
#{"id":100697,"type":3,"publishtime":636,"title":"我的孤独","summary":"","image":"iF6.png"}item_id = res_item["id"]item_type = res_item["type"]item_time = res_item["publishtime"]item_title = res_item["title"]item_summary = res_item["summary"]item_image = res_item["image"]itemlist = [item_id,item_type,item_time,item_title,item_summary,item_image]excel_totallist.append(itemlist)
#       调用封装好的保存图片的方法saveImage(item_image,pic_forurl,folderpath)#保存excel表格数据abspath = os.path.join(folderpath,"ten.xls")pyexcel_xls.save_data(abspath,excel_dic)'''保存图片的方法imgurl :图片的网址     pic_forurl :图片缺省部分的网址    folderpath:图片的保存路径
'''
def saveImage(imgurl,pic_forurl,folderpath):# http://jbcdn2.b0.upaiyun.com/2015/12/     6e9755283d00dda6093866f8b9547b43.jpgimgname = imgurl.split('/')[-1]if 'http' not in imgurl:pic = pic_forurl + imgurl# 保存图片try:abspath = os.path.join(folderpath, imgname)urllib.request.urlretrieve(pic, abspath)except:passif __name__ == '__main__':ten_url = 'http://api.shigeten.net/api/Diagram/GetDiagramList'pic_forurl = 'http://api.shigeten.net/'folder_path = "file"if not os.path.exists(folder_path):os.mkdir(folder_path)getDataFromHtml(ten_url,pic_forurl,folder_path)

然后就可以将数据下载并存储到本地表格了~

感谢您的阅读!

Python爬虫项目:爬取JSON数据存储Excel表格与存储图片相关推荐

  1. Python爬虫项目--爬取某宝男装信息

    本次爬取用到的知识点有: 1. selenium 2. pymysql 3  pyquery ''' 文章:Python爬虫项目--爬取某宝男装信息 作者:Star_Zhao 源自:https://w ...

  2. Python 爬虫 之 爬取王者荣耀的英雄们所有大皮肤图片,并 json 形式保存英雄列表信息到本地

    Python 爬虫 之 爬取王者荣耀的英雄们所有大皮肤图片,并 json 形式保存英雄列表信息到本地 目录

  3. 初识Python爬虫----如何爬取网络数据

    一.什么是网络爬虫 即爬取网络数据的虫子,也就是Python程序. 二.爬虫的实质是什么? 模拟浏览器的工作原理,向服务器发送请求数据. 三.浏览器的工作原理是什么? 浏览器还可以起到翻译数据的作用. ...

  4. 【Python爬虫】爬取大量数据网络超时的解决思路

    问题 在爬取大量数据的过程中,有时没有注意,会出现网络超时,结果也不知道爬到了哪里,重新爬一遍代价太大. 解决思路 目前提供解决思路,实践之后补充示例代码. 思路一 1.设置超时处理,超过时间返回异常 ...

  5. 10-24-程序员日-我的第一个python爬虫项目-爬取蜂鸟上的图片

    今天是诸位程序员的节日,为了1024勋章,我这个菜鸟也来发个博客 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序. 在 ...

  6. 【python爬虫】爬取网站数据,整理三句半语料数据集

    因为目前没有公开的三句半语料库,所以在网络上爬取一些网站上公开的三句半数据. 主要分为两部分: 目录 爬取数据 清洗数据 爬取数据 以爬取 http://p.onegreen.net/JuBen 上的 ...

  7. Pycharm + python 爬虫简单爬取网站数据

    本文主要介绍简单的写一个爬取网站图片并将图片下载的python爬虫示例. 首先,python爬虫爬取数据,需要先了解工具包requests以及BeautifulSoup requests中文文档:ht ...

  8. python爬取网页内容_你以为Python爬虫只能爬取网页数据吗?APP也是可以的呢!

    摘要 大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1 抓取APP数据包 方法详细可以参考这篇博文:http://my. ...

  9. 【python爬虫】爬取ajax数据-马蜂窝旅游网

    10-爬取ajax数据-马蜂窝旅游网 目标 马蜂窝旅游网-广州全部景点 地址:https://www.mafengwo.cn/jd/10088/gonglve.html 分析 网站分析: 打开目标网页 ...

  10. python爬虫_爬取京东商品写入Excel表

    新人的第二篇文章,写的不好请见谅 这段代码只是针对京东的商品信息爬取,很多都是根据页面源码去匹配获取数据的,别的网站用不了,也可能过一段时间官方修改了页面就不能用了,不过这里也只是提供学习使用,希望可 ...

最新文章

  1. 杭电 1711 Number Sequence 1686 2203
  2. 2013.10u-boot移植之增加nand保存环境变量
  3. 解决DataGridView绑定List后不能排序的问题
  4. python读取数据库导出文件_python如何导出excel表格数据库数据
  5. win10系统同时安装python2和python3
  6. 1. 少了一个PermMissingElem Find the missing element in a given permutation.
  7. Hibernate 注解方式
  8. TensorFlow变量:创建、初始化、保存和加载
  9. 网易音乐链接html代码,爬取网易云音乐MP3链接脚本
  10. struts的增删查改
  11. 大部头出版物排版软件
  12. 2015阿里巴巴北京年会——马云“北伐”讲话
  13. ​2 万字系统总结,带你实现 Linux 命令自由?
  14. loop在python中什么意思_python中迭代什么意思
  15. requires_grad,grad_fn,grad的含义及使用
  16. oracle12c cdb修改,Oracle 12C CDB字符集修改
  17. Luogu P2129 小Z的情书
  18. 小程序轮播图_厉害!对准不认识的野生菌拍个图,云大学生设计的这个小程序就能自动识别…...
  19. FFMpeg 实现视频编码、解码
  20. 明道云与阿里1688对接案例

热门文章

  1. 计算机基础----冯诺依曼体系结构
  2. CodeForces 158B Taxi(代数算式解题)
  3. 解决 error: called object ‘xxx‘ is not a function or function pointer
  4. Linux技巧之Ubuntu11.04下安装极点五笔输入法
  5. 【论文阅读】针对快速和准确的超分辨率深度拉布拉斯金字塔网络
  6. 如何爬取当当网畅销书排行榜信息? requests + pyquery
  7. Podman 保姆级使用教程,太顶了!
  8. Java Web 胡言乱语 之三
  9. Git Pull Failed: CONFLICT (content): Merge conflict in camus-aggregator/camus-admin-web/src/main/web
  10. 爬取糗事百科图片(正则案例)