爬虫第一天

一,数据的来源
1 企业生产的用户数据
2 数据管理咨询公司
3 政府/机构提供的公开的数据
4 第三方数据平台购买数据
5 爬虫爬取数据

二爬虫分类
根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种.
通用爬虫

通用爬虫:搜索引擎用的爬虫系统。搜索引擎和web服务商提供的爬虫。
目标:

就是尽可能的;把互联网上的所有的网页下载下来,放到本地服务器里形成备分,在对这些网页做相关处理(提取关键字、去掉广告),最后提供一个用户检索接口。
抓取流程:

首先选取一部分URL,把这些URL放到待爬取队列。

从队列取出URL,然后解析DNS得到主机IP,然后保存这个IP对应的服务器里下载HTML页面,保存到搜索引擎的本级服务器,之后把这个爬过的url放入已爬过的队列。

分析这些网页内容,找出网页里其他的URL链接,继续执行第二步,直到爬取结束

搜索引擎如何获取一个新网站的URL:

a)主动向搜索引擎提交网站
B)在其他网站里设置外联
C)索引擎会和DNS服务商服务商进行合作,可以快速收录新的网站

DNS把域名解析成IP的一种技术。
通用爬虫并不是万物皆可爬取,他也要遵循规则:

Robots协议:协议会指明通用爬虫可以爬取网页的权限(告诉搜索引擎那些可以抓取,那些不可以抓取)

Robots.txt 并不是所有的爬虫都遵守,一般只有大型的搜索引擎爬虫才会遵守

存在位置:robots.txt文件应该放置在网站根目录下
例如:https://www.taobao.com/robots.txt
通用爬虫工作流程:

爬取网页 存储数据 内容处理 提供检索/排名服务
搜索引擎排名:

PageRank值:根据网站的流量(点击量/浏览量/人气)统计,流量越高,网站排名越靠前。

竞价排名:谁给的钱多,谁排名就高。

通用爬虫的缺点:

只能提供和文本相关的内容(HTML、Word、PDF)等等,但是不能提供多媒体文件(音乐、图片、视频)和二进制文件(程序、脚本)

提供的结果千篇一律,不等针对不同背景领域的人提供不同的搜索结果

不能提供人类语义上的检索

通用搜索引擎的局限性

    通用搜索引擎所返回的网页里90%的内容无用。

    中文搜索引擎自然语言检索理解困难

    信息占有量和覆盖率存在局限。

    搜索引擎最主要的还是以关键字搜索为主,对于图片、数据库、音频、视频多媒体的内容通用搜索引擎无能为力。

    搜索引擎的社区化和个性化不好,大多数搜索引擎没有考虑人的地域,性别,年龄的差别

    搜索引擎抓取动态网页效果不好

    解决通用爬虫的缺点,聚焦爬虫出现了。

聚焦爬虫

聚焦爬虫:爬虫程序员写的针对某种内容爬虫。
面向主题爬虫、面向需求爬虫:会针对某种特定的能容去爬取信息,而且保证内容需求尽可能相关。

三,HTTP和HTTPS的基本概念和区别

HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

常用HTTP状态码

100~199:信息状态码,表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程 , 100(continue)继续发送
200~299:成功状态码,表示成功接收请求并已完成整个处理过程,常用200(OK)成功接收
300~399:重定向状态码,例如,请求的资源已经移动一个新地址,常用302、307和304
400~499:客户端的请求有错误,常用404(Not Found),403(Fobidden)
500~599:服务器端出现错误,常用 500
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
400 客户端请求的语法错误,服务器无法理解
401 请求要求用户的身份认证
404 请求的资源(网页等)不存在
500 - 内部服务器错误

四,requests的一些基础知识
安装requests模块: pip install requests
核心代码: 发送get请求

response = requests.get(url)
response = requests.post(url,data=data)

response的常用属性:

    response.text
    respones.content 二进制形式的响应数据
    response.status_code 响应状态吗
    response.headers 响应头
    response.request.headers 请求头

response.text 和response.content的区别

    response.text
        类型:str
        解码类型: 根据HTTP头部对响应的编码作出有根据的推测,推测的文本编码
        如何修改编码方式:response.encoding=”utf8”
    response.content
        类型:bytes
        解码类型: 没有指定
        如何修改编码方式:response.content.deocde(“utf8”)
    更推荐使用response.content.deocde()的方式获取响应的html页面

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值