通用爬虫与聚焦爬虫:

通用爬虫:搜索引擎用的爬虫系统
1)目标:
把互联网的网页下载下来,放到本地服务器形成备份,
再对这些网页做相关处理(提取关键字,去掉广告),最后提供一个用户检索接口。
2)抓取流程:
首先选取一部分已有的URL,把这些URL放到待爬取队列。
从队列里取出这些URL,然后解析DNS得到主机IP,然后去这个IP地址对应的服务器下载HTML页面,
保存到搜索引擎的本地服务器,之后把这个爬过的url放入已爬取队列。
分析这些网页内容,找出网页里其他的URL连接,继续执行第二步,直到爬取条件结束。
DNS:就是把域名解析成IP的技术。
3)搜索引擎如何获取一个新网站的URL:
主动向搜索引擎主动提交网址;
在其它网站里设置网站的外链(友情链接);
搜索引擎会和DNS服务商进行合作,可以快速收录新的网站。
4)通用爬虫并不是万物皆可爬,需要遵守一些规则:
Robots协议:协议会指明通用爬虫可以爬取网页的权限。
Robots.txt(详情规则),一般只有大型的搜索引擎爬虫会遵守。
个人写的爬虫就不管了。
5)通用爬虫工作流程:
爬取网页-->存储数据-->存储数据-->内容处理-->提供检索/排名服务
6)搜索引擎排名:
PageRank值:根据网站的流量(点击量/浏览量/人气)统计,排名越高越值钱。
竞价排名:谁给钱多,谁排名高。
7)通用爬虫的缺点:
只能提供和文本相关的内容(HTML、Word、PDF)等,
不能提供多媒体文件(音乐、图片、视频)等,二进制文件(程序、脚本)等。
提供的结果千篇一律,不能针对不同领域不同专业的人提供不同的搜索结果。
不能理解人类语义上的检索。

聚焦爬虫:爬虫程序员写的是针对某种内容的爬虫
为了解决通用爬虫存在的问题,聚焦爬虫出现了。
面向主题爬虫,面向需求爬虫,会针对某种特定的内容去爬取信息,
而且会保证内容和信息尽可能地相关。
聚焦爬虫的工作原理:
url-list-->响应内容-->提取url(-->响应内容,直到获取完成,进入下一步)-->提取数据-->入库

HTTP和HTTPS

HTTP协议:是一种发布和接收HTML页面的方法,即超文本传输协议。
HTTPS协议:HTTP的安全版,在HTTP下加入SSL层,SSL层在传输层对网络连接进行加密。

HTTP通信由两部分组成:客户端请求消息与服务器响应消息

客户端HTTP请求包括以下的格式:
请求行、请求头部、空行、请求数据
HTTP请求主要分为Get和Post两种方法。
GET是从服务器上获取数据,POST是向服务器传送数据。
如果要提交表单,选择Post方式,使用Get方式会把用户密码暴露在地址栏上。

Cookie:通过在客户端记录的信息确定用户的身份。
Session:通过在服务器端记录的信息确定用户的身份。

Fiddler是一个不错的抓包工具,当然直接浏览访问也可以。

那么接下来我们就写一个简单的爬虫百度代码:

from urllib import request
import random
#统一资源定位符
url="http://www.baidu.com"
#可以是User-Agent列表,也可以是代理列表
ua_list=[
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6814.400 QQBrowser/10.3.3005.400",
"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1",
"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Mobile Safari/537.36",
"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Mobile Safari/537.36"
]
#在User-Agent列表中随机选择一个,更具有安全性
user_agent=random.choice(ua_list)
#User-Agent是爬虫和反爬虫斗争的第一步,养成这个好习惯
headers={
"User-Agent":user_agent
}
#向指定的url地址发送请求,并返回服务器响应的类文件对象
#在Python2中,是urllib2,在Python3被改成urllib.request.
response=request.urlopen(url)
#服务器返回的类文件对象支持Python文件对象的操作方法
#read()方法就是读取文件里的全部内容,返回字符串
html=response.read()
#打印响应内容
print(html)
#打印响应码
print(response.getcode())
#返回实际数据的实际url,防止重定向的问题
print(response.geturl())
#返回服务器响应的HTTP报头
print(response.info())
输出结果:
(百度源码略)

200

http://www.baidu.com

Date: Mon, 07 Jan 2019 06:47:42 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: Close
Vary: Accept-Encoding
Set-Cookie: BAIDUID=B1228A8040377591F7EB96B1090C4AE2:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: BIDUPSID=B1228A8040377591F7EB96B1090C4AE2; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: PSTM=1546843662; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: delPer=0; path=/; domain=.baidu.com
Set-Cookie: BDSVRTM=0; path=/
Set-Cookie: BD_HOME=0; path=/
Set-Cookie: H_PS_PSSID=1461_21101_28205_28132_26350_28266_27245_22158; path=/; domain=.baidu.com
P3P: CP=" OTI DSP COR IVA OUR IND COM "
Cxy_all: baidu+395db271fbbb06e1373116f63b95c029
Cache-Control: private
Expires: Mon, 07 Jan 2019 06:47:25 GMT
Server: BWS/1.1
X-UA-Compatible: IE=Edge,chrome=1
BDPAGETYPE: 1
BDQID: 0xd80982870003d452

转载于:https://www.cnblogs.com/Masterpaopao/p/10233204.html

爬虫前期知识的储备(二)相关推荐

  1. 手把手带你入门Python爬虫(二、爬虫预备知识)

    爬虫预备知识 一.计算机网络协议基础 二.Html.Css.Javascript Ajax 异步加载 GET请求 与 POST请求 3种content-type 三.爬虫基本方法 1. 采集方案分类 ...

  2. 接口测试学习入门(1)--前期知识储备

    转自:http://www.cnblogs.com/alwayswyy/p/5481574.html 接口测试学习入门(1)--前期知识储备 接口测试前必需知识了解: 1.接口测试的原理: 无论用那种 ...

  3. (二)python爬虫基础知识续

    爬虫基础知识二 爬虫应用 数据爬取(微指数) 搜索引擎 app或网页的资源来源 浏览器能做的事情,原则上爬虫都能完成 12306抢票(机器学习可以识别验证码,或者在不需要验证码的合作网站爬取)(微信和 ...

  4. python爬虫——基础知识

    python爬虫--基础知识 一.网页基础知识 二.爬虫的思路 1.HTML文档(超文本) 三.ROBOTS协议 四.浏览器发送HTTP请求的过程 1.http请求过程 2.请求 五.SSL连接错误 ...

  5. Python爬虫核心知识-序章:课程前导-爬虫的相关法律法规

    Python爬虫核心知识 序章:课程前导-爬虫的相关法律法规 爬虫程序是一种技术产物,爬虫代码本身并未违反法律.但程序运行过程中有可能对他人经营的网站造成 破坏,爬取的数据有可能涉及隐私或机密,数据的 ...

  6. 磁盘加密软件TrueCrypt知识大全(二)之创建文件型加密卷

    磁盘加密软件TrueCrypt知识大全(二)之创建文件型加密卷 1.在"TrueCrypt"窗口中选择"创建加密卷(C)"按钮,在向导中选择"创建文件 ...

  7. pythonscrapy爬虫_Python 爬虫:Scrapy 实例(二)

    原标题:Python 爬虫:Scrapy 实例(二) 稍微增加点难度,做个所需项目多一点的,并将的结果以多种形式保存起来.我们就从网络天气预报开始. 首先要做的是确定网络天气数据的来源.打开百度,搜索 ...

  8. java 网络爬虫 正则表达式_【干货】Java网络爬虫基础知识

    原标题:[干货]Java网络爬虫基础知识 引言 Java 网络爬虫具有很好的扩展性可伸缩性,其是目前搜索引擎开发的重要组成部分.例如,著名的网络爬虫工具 Nutch 便是采用 Java 开发,该工具以 ...

  9. python 爬虫实例-Python 爬虫:Scrapy 实例(二)

    原标题:Python 爬虫:Scrapy 实例(二) 稍微增加点难度,做个所需项目多一点的,并将的结果以多种形式保存起来.我们就从网络天气预报开始. 首先要做的是确定网络天气数据的来源.打开百度,搜索 ...

最新文章

  1. eclipse 变成中文
  2. 【iCore2双核心板】SRAM 读写实验(基于Verilog语言)
  3. 基于视觉Transformer的目标检测
  4. python与excel的区别-python比较两个excel表格的差异
  5. js正则贪婪模式_C# 正则表达式贪婪模式案例
  6. jvm性能调优实战 - 40 百万级数据误处理导致的频繁Full GC问题优化
  7. 精选案例 | “虫虫音乐”如何做到搜索CTR提高150%
  8. 【C11】float
  9. php 当前页面停留时间,PHP 记录页面停留时间
  10. 获取Windows mobile 开始菜单里最近打开的程序(Recent Programs)
  11. js导出excel文件
  12. 《Java性能调优实战》00丨开篇词丨怎样才能做好性能调优?2022.03.08-20220329学习完
  13. 辽宁电网容载比问题及合理取值研究
  14. python漏洞扫描器爬虫_Python系列之——漏洞平台厂商列表爬虫
  15. 微信小程序 iOS tableview
  16. 免费版本在线客服迷你窗口内的开场广告语如何关闭?
  17. C++ Eigen 库中旋转向量、旋转矩阵、欧拉角、四元数的定义及互相转换
  18. 188968-51-6,cilengitide,西仑吉肽,选择性的αvβ3 和αvβ5受体整合素抑制剂
  19. Win10默认输入法切换中英文标点
  20. 5.8月更新下 青龙面板——酷狗大字版(教程很难吗?)

热门文章

  1. 输入引脚时钟约束_最强干货分享 | 时钟树例外(exclude pin、stop pin、non_stop pin、float pin)...
  2. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...
  3. LeetCode算法入门- String to Integer (atoi)-day7
  4. 计算机专业英语读书报告,英语读书报告怎么写
  5. java找到int需要char_Java2课后择题.doc
  6. java 微信 回复_微信java 开发2 发送文本消息并回复
  7. HTML+CSS+JS实现 ❤️创意时间轮盘时钟特效❤️
  8. python 概率分布类型检验_统计学:假设检验Python案例实现+概率论基础知识回顾...
  9. string拼接_String拼接操作-的优化
  10. curaengine linux编译,Cura源码在Ubuntu15.04上编译脚本(成功)