在准备学习人工智能之前呢,我看了一下大体的学习纲领。发现排在前面的是PYTHON的基础知识和爬虫相关的知识,再者就是相关的数学算法与金融分析。不过想来也是,如果想进行大量的数据运算与分析,宏大的基础数据是必不可少的。有了海量的基础数据,才可以支撑我们进行分析与抽取样本,进行深度的学习。

  看到这个爬虫的介绍,突然想起来2012年左右在微软亚洲院做外派时做的一个项目。当时在亚洲研究院有一个试验性质的项目叫“O Project", 这里面的第一个字符是字母O。在真正的进入项目之后才知道为什么叫“O”:在IPAD上面使用safari浏览器浏览一个网站,激活插件后,使用手指画圈圈,而圈圈内的词组就会向Bing和Google发出查询请求,在查询请求完成后,返回相应的结果。这个主要是应用在页面级,类似于现在页面上的单词翻译一样。

  当时在做这个项目的时候,还没有爬虫的概念与理念。所以我是通过这样的方式来实现这个需求的:

  1. 创建一个服务,这个服务主要是接收前台页面回传的圈圈词句;

  2. 在页面当中激活绘图功能(主要是safari),根据绘制的圈圈,取出页面当中的词句。取出词语的方式也很简单,例如下面的图画:

    所画的圈圈的四个最上、下、左、右的元素的X和Y坐标,然后再根据页面当中的文字对应出其所在页面当中的坐标值,如果字符串在这四个坐标内,就认为其为圈中的字符串。

    如果像图当中的“颗”这个字,其左坐标没有包含在左箭头的X和Y的范围内,则不将“颗”统计的字符串内,但是“中”满足这样的条件。

  

  3. 在取得圈内的字符串后,回传回后台的服务。

  4. 后台的服务向BING和GOOGLE发出查询请求。当时因为没有现在的Python和Scrapy这些流行的框架及组件,我只能通过C#来进行解析:创建一个流程器对象,设置其URL为BING或者GOOGLE的查询字符串。在接收完回传信息后,截取其内容也就是HTML字符串,摘取其中的搜索结果、引用地址及相应的简介。

  5. 将所收集到的内容存放到数据库当中进行备案查询或者其他的用处。

  6. 当时要对于可能感兴趣的内容进行推荐,就需要人工去点击或者匹配相应的词汇来完成更深入的查询与匹配。现在想想真是太落后了。

  随着学习的深入,目前完成了Python的基础使用、工具的使用、第三方工具的初步使用等。在接下来的文章当中我一步步的向大家进行共享吧。

Python爬虫的学习经历的更多相关文章

  1. Python爬虫系统化学习(2)

    Python爬虫系统学习(2) 动态网页爬取 当网页使用Javascript时候,很多内容不会出现在HTML源代码中,所以爬取静态页面的技术可能无法使用.因此我们需要用动态网页抓取的两种技术:通过浏览 ...

  2. Python爬虫系统学习(1)

    Python爬虫系统化学习(1) 前言:爬虫的学习对生活中很多事情都很有帮助,比如买房的时候爬取房价,爬取影评之类的,学习爬虫也是在提升对Python的掌握,所以我准备用2-3周的晚上时间,提升自己对 ...

  3. Python爬虫系统化学习(4)

    Python爬虫系统化学习(4) 在之前的学习过程中,我们学习了如何爬取页面,对页面进行解析并且提取我们需要的数据. 在通过解析得到我们想要的数据后,最重要的步骤就是保存数据. 一般的数据存储方式有两 ...

  4. Python爬虫系统化学习(5)

    Python爬虫系统化学习(5) 多线程爬虫,在之前的网络编程中,我学习过多线程socket进行单服务器对多客户端的连接,通过使用多线程编程,可以大大提升爬虫的效率. Python多线程爬虫主要由三部 ...

  5. 一个Python爬虫工程师学习养成记

    大数据的时代,网络爬虫已经成为了获取数据的一个重要手段. 但要学习好爬虫并没有那么简单.首先知识点和方向实在是太多了,它关系到了计算机网络.编程基础.前端开发.后端开发.App 开发与逆向.网络安全. ...

  6. python爬虫专栏学习

    知乎的一个讲python的专栏,其中爬虫的几篇文章,偏入门解释,快速看了一遍. 入门 爬虫基本原理:用最简单的代码抓取最基础的网页,展现爬虫的最基本思想,让读者知道爬虫其实是一件非常简单的事情. 爬虫 ...

  7. python爬虫scrapy学习之篇二

    继上篇<python之urllib2简单解析HTML页面>之后学习使用Python比较有名的爬虫scrapy.网上搜到两篇相应的文档,一篇是较早版本的中文文档Scrapy 0.24 文档, ...

  8. 【Python爬虫案例学习】下载某图片网站的所有图集

    前言 其实很简短就是利用爬虫的第三方库Requests与BeautifulSoup. 其实就几行代码,但希望没有开发基础的人也能一下子看明白,所以大神请绕行. 基本环境配置 python 版本:2.7 ...

  9. Python爬虫系统化学习(3)

    一般来说当我们爬取网页的整个源代码后,是需要对网页进行解析的. 正常的解析方法有三种 ①:正则匹配解析 ②:BeatuifulSoup解析 ③:lxml解析 正则匹配解析: 在之前的学习中,我们学习过 ...

随机推荐

  1. base64位代码转图片文件并保存到文件夹的解决方案

    #region Base64 转图片方法 protected string Base64StringToImage(string strbase64) { try { string imgurl = ...

  2. win10操作系统上,wireshark抓取https。

    今天试了下使用wireshark抓https的包 一.记录如下: 配置一个环境变量SSLKEYLOGFILE为D:\Temp\sslog.log(这个文件需要自己去创建). 去下载一个chrome浏览 ...

  3. html模板导出pdf文件

    package com.crc.commonreport.util; import java.awt.Insets; import java.io.ByteArrayOutputStream; imp ...

  4. python对mysql数据库的一些常用操作

    import pymysql class OperationDatabase(): def __init__(self,Ip,User,PassWd,DBname): self.ip=Ip self. ...

  5. FastDFS数据存储

    1. 数据存储 在fdfs传一份文件时,通常会返回下面的一串字符,这包含了该文件在服务器端一些存储信息 M00/00/00/wKg4C1tFmTWAFPKBAADdeFFxlXA240.png 下面解 ...

  6. python基础 ---time,datetime,collections)--时间模块&collections 模块

    python中的time和datetime模块是时间方面的模块 time模块中时间表现的格式主要有三种: 1.timestamp:时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算 ...

  7. linux下编译protobuf(可以编译成pb.go)

    编译前需要安装gtest $ cd googletest $ cmake -DBUILD_SHARED_LIBS=ON . $ make $ sudo cp -a include/gtest /hom ...

  8. 对DOM,SAX,JDOM,DOM4J四种方法解析XML文件的分析

    1.DOM 与平台无关的官方解析方式 DOM是一次性把xml文件加载到内存中,形成一个节点树 对内存有要求 2.SAX java提供的基于事件驱动的解析方式 每次遇到一个标签,会触发相应的事件方法 3 ...

  9. 对js原型及构造函数的相关理解

    一.js中的原型创建(声明)一个函数,浏览器在内存中会创建一个对象.每个函数都默认会有一个属性prototype指向了这个对象,就是说prototype的属性的值就是这个对象.此对象就是该函数的原型对 ...

  10. go语言基本语法

    一个例子总结go语言基本语法  demo.go   package main   import (     "fmt" )   //结构体 type PersonD struct ...