今天就聊聊爬虫的清洗,下载网页只是最简单的一个步骤,最让人头疼的是数据的清洗。

为什么要这样说呢,因为爬虫首先是获得数据,清洗是把非结构化的数据转换成结果化的数据,这个时候是最考验人的时候。

如果是国内的网站,清洗工作相对比较简单,因为国内的数据不是那么的凌乱,有一定的规则,我们清洗的时候需要写的规则比较少,对于国外的网站,由于老外崇尚自由,

在他们的网站中最直接的体现就是一个网站可能需要写多套模板,清洗的时候比较麻烦。有什么好的方法去做好清洗的工作吗?

第一:足够的耐心。清洗的时候我们会遇到各种问题,所有要有耐心去做好这件事情。

第二:明确原始数据和目标数据,我觉得这点很重要的,为什么? 第一就是原始数据有好多种,如果在前期不知道有哪些原始的数据,当我们写好代码的时候,去运行,这个时候会出现各种报错,我们还得回头去修改自己的代码,带来没必要的麻烦。这个时候可以利用SQL语句  group by  去查询一个字段有哪些类型,然后去写相应的清洗代码

第三:使用  re ,replace,if  合理的搭配,提高清洗地效果。

第四:在编写清洗代码的时候,可以让自己的代码跑起来,一遍写代码,一遍去测试自己的清洗代码是否有错误。我觉得这点很重要,在实际的清洗工作中,这一招是屡试不爽。

第五:我觉得在实际的清洗过程中,保留原始代码是很重要的,所以在下载网页的过程中,很有必要去存储原始网页的信息,清洗的时候遇到漏采的字段,不需要再去下载网页了。

Python 爬虫 不得不说的 清洗的更多相关文章

  1. python爬虫学习-爬取某个网站上的所有图片

    最近简单地看了下python爬虫的视频.便自己尝试写了下爬虫操作,计划的是把某一个网站上的美女图全给爬下来,不过经过计算,查不多有好几百G的样子,还是算了.就首先下载一点点先看看. 本次爬虫使用的是p ...

  2. Python爬虫初学(二)—— 爬百度贴吧

    Python爬虫初学(二)-- 爬百度贴吧 昨天初步接触了爬虫,实现了爬取网络段子并逐条阅读等功能,详见Python爬虫初学(一). 今天准备对百度贴吧下手了,嘿嘿.依然是跟着这个博客学习的,这次仿照 ...

  3. python爬虫如何入门

    学爬虫是循序渐进的过程,作为零基础小白,大体上可分为三个阶段,第一阶段是入门,掌握必备的基础知识,第二阶段是模仿,跟着别人的爬虫代码学,弄懂每一行代码,第三阶段是自己动手,这个阶段你开始有自己的解题思 ...

  4. python爬虫+数据可视化项目(关注、持续更新)

    python爬虫+数据可视化项目(一) 爬取目标:中国天气网(起始url:http://www.weather.com.cn/textFC/hb.shtml#) 爬取内容:全国实时温度最低的十个城市气 ...

  5. 【Python爬虫】正则表达式与re模块

    正则表达式与re模块 阅读目录 在线正则表达式测试 常见匹配模式 re.match re.search re.findall re.compile 实战练习 在线正则表达式测试 http://tool ...

  6. Python爬虫防封杀方法集合

      Python爬虫防封杀方法集合     mrlevo520 2016.09.01 14:20* 阅读 2263喜欢 38       Python 2.7 IDE Pycharm 5.0.3 前言 ...

  7. Python爬虫实战---抓取图书馆借阅信息

    Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...

  8. 一个月入门Python爬虫,轻松爬取大规模数据

    Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工具,让爬虫变得 ...

  9. Python爬虫教程-31-创建 Scrapy 爬虫框架项目

    本篇是介绍在 Anaconda 环境下,创建 Scrapy 爬虫框架项目的步骤,且介绍比较详细 Python爬虫教程-31-创建 Scrapy 爬虫框架项目 首先说一下,本篇是在 Anaconda 环 ...

随机推荐

  1. MySql 错误代码 1045

    错误代码 1045Access denied for user 'root'@'localhost' (using password:YES)解决办法是重新设置root用户密码,在Windows平台下 ...

  2. C#实现U盘检查,并写入文件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. gson 忽略掉某些字段不进行转换

    增加 transient 修饰进行解决,例如: private  transient final DecimalFormat df = new DecimalFormat("#0.00&qu ...

  4. POSTGRESQL 自动登录

    以前习惯使用MYSQL命令行登录,但是到POSTGRESQL不能实现,下面总结一下方法: 1.填写需要链接的postgresql语句,一般放在~/.bash_profile,例如: alias log ...

  5. JVM——字节码增强技术简介

    Java字节码增强指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改.Java字节码增强主要是为了减少冗余代码,提高性能等. 实现字节码增强的主要步 ...

  6. java 16进制与字符串直接相互转换

      java 16进制与字符串直接相互转换 CreationTime--2018年7月12日09点39分 Author:Marydon 1.16进制转换成字符串 /** * 16进制直接转换成为字符串 ...

  7. 使用springMVC和Jquery实现JSONP

    JSONP这个东东是啥我就不写了,直接贴实现的代码 JAVA代码: /** * * 查询用户是否已经提交认证获取已经是认证会员 * * 使用spring mvc的直接返回string会遇到分号转义后字 ...

  8. Windows遇到ERR_NETWORK_ACCESS_DENIED处理方案

    问题描述: 用了总部vpn,总是打不开总部资源,之前可以一直提示,禁止访问互联网ERR_NETWORK_ACCESS_DENIED, 郁闷了好几天,今天自己查查资料解决了!说明,问题总是能解决的,只是 ...

  9. Android 仿知乎创意广告

    代码地址如下:http://www.demodashi.com/demo/14904.html 一.概述 貌似前段时间刷知乎看到的一种非常有特色的广告展现方式,即在列表页,某一个Item显示背后部分广 ...

  10. ios中开始页面做法

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...