Python

[CP_06] Python爬虫基础概述

2019-03-24  本文已影响0人  Fighting_001

目录结构

一、Python爬虫简介
    1. 大数据时代获取信息的途径
    2. 通用爬虫&聚焦爬虫
        1)通用爬虫
        2)聚焦爬虫
二、Python爬虫基础-准备
    1. 请求--响应(模型)
    2. URL基本格式
    3. GET请求 & POST请求

一、Python爬虫简介

1. 大数据时代获取信息的途径

学习意义:从纷繁杂乱的网络数据中提取有价值的数据,然后进行分析其中蕴含的规律、历史&现状、趋势预测...,作为行业决策的参考

大数据时代,数据获取途径:

2. 通用爬虫&聚焦爬虫

1)通用爬虫

通用网络爬虫是搜索引擎抓取系统(Baidu/Google/Yahoo)的重要组成部分,主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份

通用网络爬虫-工作流程图

搜索引擎蜘蛛的爬行是被输入了一定的规则的,它需变遵从一些命令or文件的内容,如标注为agf9llw的链接,或是Robots协议。
Robots协议(爬虫协议/机器人协议):网络爬虫排除标准(Robots Exclusion Protocol),网站通过Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。查看robots协议文件,格式为:主域名/robots.txt

Step1:抓取网页

搜索引擎网络爬虫的基本工作流程:
(1)首先选取一部分种子URL,将这些URL放入待抓取URL队列
(2)取出待抓取URL,解析DNS得到主机IP,并将URL对应的网页下载下来,存储进已下载网页库中,然后将这些URL放进已抓取URL队列
(3)分析已抓取URL队列中的其他URL,提取新的URL放入待抓取URL队列,从而进入下一个循环

通用爬虫网络框架
Step2:数据存储

(1)网页内容存储:搜索引擎通过爬虫爬取到网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器访问得到的HTML是一致的。
(2)重复内容检测:搜索引擎蜘蛛在抓取页面时,也做一定的重复内容检测,一旦遇到访问权重很低的网站上有大量抄袭、采集or复制的内容,很可能就不再爬行。

Step3:预处理(数据清洗)

搜索引擎将爬虫抓取回的页面,进行各种步骤的预处理:
① 提取文字
② 中文分词
③ 消除嗓音(杂乱的信息,如:版权声明文字、导航条、广告...)
④ 索引处理
⑤ 链接关系计算
⑥ 特殊文件处理
除了HTML文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如:PDF、Word、WPS、XLS、PPT、TXT文件等。在搜索结果中也常会看到以上文件类型,但搜索引掌还不能处理图片、视频、Flash这类非文字内容,也不能执行脚本和程序

Step4:提供检索服务,网站排名

搜索引攀在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检素相关的信息展示给用户,同时会根据页面的PageRank值(链接访问量排名)来进行网站排名,这样Rank值高的网站在搜索结果中会排名靠前,当然也可以直接使用RMB购买来获得搜索引擎网站排名推广

搜索引擎工作模式

通用性搜索引擎的局限性:
(1)通用搜索引擎所返回的结果都是网页,而大多情况下,网页里90%的内容对用户来说都是无用的(无效信息干扰)
(2)不同领域、不同背景的用户往往具有不同的检索目的和需求,搜索引擎无法提供针对具体某个用户的搜索结果
(3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎对这些文件无能为力,不能很好地发现和获取
(4)通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询,无法准确理解用户的具体需求

针对以上局限性,通过聚焦爬虫技术可以进行有效改善

2)聚焦爬虫

聚焦爬虫:是面向 "特定主题需求"(爬取指定主题的内容) 的一种网络爬虫程序,它与通用搜索引掌爬虫的区别在于,聚焦爬虫在实施网页提取时会对内容进行处理筛选,尽量保证只提取与需求相关的网页信息,提取的信息相对更加精准化,可获取常规的手工方式不容易获取的信息

二、Python爬虫基础-准备

1. 请求--响应(模型)

2. URL基本格式

基本格式:scheme://host[:port#]/path/.../[?query-string][#anchor]
scheme:协议。如:http、https、ftp
host:服务器的IP地址or域名。如:192.168.0.11
port#:服务器的端口。(http默认端口为80,https默认端口为443)
path:访问资源的路径
query-string:参数,发送给http服务器的数据
anchor:锚(跳转到网页的指定铺点链接地址)

3. GET请求 & POST请求

GET是从服务器上获取数据,POST是向服务器传送数据
GET请求:其参数显示在浏览器网址上,HTTP服务器根据请求所包含URL中的参数来产生响应内容
POST请求:参数在请体中传递,消息长度没有限制而且以隐式的方式进行发送,通常用来向HTTP服务器提交容量比较大的数据(如:请求中包含许多参数or文件上传操作)。通过"Content-Type"指明该消息体的媒体类型/数据提交方式、编码方式
<关联> [PPJ_02] HTTP基本原理-知识点归纳

PS:
尽可能避免使用GET方式提交表单,因可能产生安全问题,如在登录表单中用GET方式,用户输入的用户名和密码将在地址栏中暴露出来

上一篇下一篇

猜你喜欢

热点阅读