1. 爬虫介绍

爬虫又称网络蜘蛛、网络机器人,主要的功能就是抓取网络数据的程序。本质就是用程序模拟人使用浏览器访问网站,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。

爬虫可分为两大类:通用网络爬虫、聚焦网络爬虫。

通用网络爬虫:是搜索引擎的重要组成部分,百度搜索引擎,其实可以更形象地称之为百度蜘蛛(Baiduspider),它每天会在海量的互联网信息中爬取信息,并进行收录。当用户通过百度检索关键词时,百度首先会对用户输入的关键词进行分析,然后从收录的网页中找出相关的网页,并按照排名规则对网页进行排序,最后将排序后的结果呈现给用户。通用网络爬虫需要遵守robots协议,网站通过此协议告诉搜索引擎哪些页面可以抓取,哪些页面不允许抓取。

聚焦网络爬虫:是面向特定需求的一种网络爬虫程序。聚焦爬虫在实施网页抓取的时候会对网页内容进行筛选,尽量保证只抓取与需求相关的网页信息。这也很好地满足一些特定人群对特定领域信息的需求。

2. 网页获取流程

import socket
​
​
def handle_request(client):request_data = client.recv(1024)print("request_data: ", request_data)client.send(b"HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=utf-8\r\n\r\n")client.send("<h1 style='color:red'>Hello, 星奕! </h1>".encode("utf-8"))
​
​
def main():server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_socket.bind(('127.0.0.1', 8800))server_socket.listen(5)
​while True:connection, address = server_socket.accept()handle_request(connection)connection.close()
​
​
if __name__ == '__main__':main()

3. URL

URL即统一资源定位符Uniform Resource Locator,每一个URL指向一个资源。可以是一个HTML页面,一个CSS文档,一个js文件、一个图片等等

URL的语法格式为:protocol://hostname[:port]/path[?query][#fragment]

http协议

百度安全验证

绝对URL和相对URL:我们上面看到的是一个绝对的URL,还有一个叫相对URL。如果URL的路径部分以“/”字符开头,则浏览器将从服务器的顶部根目录获取该资源。常出现在网页的超链接中。

  1. HTTP协议

HTTP是Hyper Text Transfer
Protocol(超文本传输协议)的缩写。HTTP协议主要的作用就是要服务器和客户端之间进行数据交互(相互传输数据)。HTTPS
(Secure Hypertext Transfer
Protocol)安全超文本传输协议,HTTPS是HTTP协议的安全版。对传输数据进行加密。

HTTP协议特点:

4.1 HTTP请求

请求行 : 具体的请求类别和请求内容

GET / HTTP/1.1 请求类别 请求内容 协议版本

请求头:对请求的进一步解释和描述

空行

请求体: 提交的内容

4.2 HTTP响应

响应行 : 反馈基本的响应情况

HTTP/1.1 200 OK 版本信息 响应码 附加信息

常见的响应状态码:

200:请求正常,服务器正常的返回数据。 301:永久重定向。
302:临时重定向。比如在访问一个需要登录的页面的时候,而此时没有登录,那么就会重定向到登录页面。
400:请求的url在服务器上找不到。换句话说就是请求url错误。 403:服务器拒绝访问,权限不够。 500:服务器内部错误。
响应头:对响应内容的描述

空行

响应体:响应的主体内容信息

  1. 编写爬虫的流程

  2. 控制台抓包

  3. request模块的安装

在CMD命令行中执行如下命令进行在线安装

pip install requests 由于网络的不稳定性有时会导致下载失败,在下载的时候我们可以加上第三方源进行下载

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/

request模块安装

pip install requests -i http://pypi.douban.com/simple/
  1. requests.get()

该方法用于 GET 请求,表示向网站发起请求,获取页面响应对象。语法如下:

response = requests.get(url,headers=headers,params,timeout)

  1. HttpResponse响应对象

我们使用 Requests 模块向一个URL发起请求后会返回一个 HttpResponse响应对象。

响应对象属性:

  • text:获取响应内容字符串类型
  • content:获取到响应内容bytes类型(抓取图片、音频、视频文件)
  • encoding:查看或者指定响应字符编码
  • request.headers:查看响应对应的请求头
  • cookies:获取响应的cookie,经过了set-cookie动作;返回cookieJar类型
  • json():将json字符串类型的响应内容转换为python对象

初识爬虫(spider)相关推荐

  1. python从入门到爬虫_python爬虫从入门到放弃(一)之初识爬虫

    什么是爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引. ...

  2. [深度学习]Part1 Python学习进阶Ch23爬虫Spider——【DeepBlue学习笔记】

    本文仅供学习使用 Python高级--Ch23爬虫Spider 23. 爬虫Spider 23.1 HTTP基本原理 23.1.1 URI与URL 23.1.2 超文本 23.1.3 HTTP 和 H ...

  3. 爬虫(Spider)与反爬虫(Anti-Spider)

    爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider),这之间的斗争恢宏壮阔... Day 1 小莫想要某站上所有的电影,写了标准的爬虫(基于HttpCl ...

  4. 由浅到深玩转Python爬虫(一)初识爬虫

    文章目录 前言 1. Python版本如何选择? 2. IDE如何选择? 3. 初识爬虫 4. 爬虫前景怎么样? 5. 怎么编写爬虫? 6. 来!我们上道具 7. 致谢 前言   由于自身对爬虫技术的 ...

  5. python爬虫系列之初识爬虫

    python爬虫系列之初识爬虫 前言 我们这里主要是利用requests模块和bs4模块进行简单的爬虫的讲解,让大家可以对爬虫有了初步的认识,我们通过爬几个简单网站,让大家循序渐进的掌握爬虫的基础知识 ...

  6. 爬虫基础spider 之(一) --- 初识爬虫

    爬虫概念 (spider,网络蜘蛛)通过互联网上一个个的网络节点,进行数据的提取.整合以及存储.从而获取我们想要的部分 robots协议 robots协议不是技术层面的协议,只是一个君子协定: 首先在 ...

  7. python爬虫从入门到放弃(一)初识爬虫

    在家里呆了几个月,重新拾起python爬虫,想着搞点东西(爱情电影)看看,发现爬虫真的是好开心. 网络爬虫是什么呢? 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者) ...

  8. Python爬虫学习第1天丨从零开始初识爬虫

    经过前面Python基础内容的学习,相信好多小伙伴都感觉一身本事,但是无用武之地吧,哈哈哈... 不要着急,如你们的愿,在爬虫阶段,我们就大胆的把基础部分的内容应用一下吧~~~ 此时此刻,你准备好了吗 ...

  9. 爬虫Spider 08 - chromedriver设置无界面模式 | selenium - 键盘操作 | 鼠标操作 | 切换页面 | iframe子框架 | scrapy框架

    文章目录 Spider 07回顾 cookie模拟登陆 三个池子 selenium+phantomjs/chrome/firefox Spider 08 笔记 chromedriver设置无界面模式 ...

最新文章

  1. 根据给定数据创建JSON并验证
  2. java实现https请求
  3. 线性代数 2021-2022-1 考试要点
  4. 关于android工程添加support-v7包的问题
  5. AIX 下磁盘 I/O 性能分析
  6. [luogu4027] [NOI2007]货币兑换
  7. SpringMVC架构---SpringMVC学习笔记(一)
  8. 表格布局页面_对于表格布局管理器的回顾以及接下来的目标
  9. python重定向cookie_模拟登陆中 302 重定向和 cookies 的一些困惑
  10. android 开源 数据库,Android开源数据库框架-LitePal的使用
  11. ActiveMQ持久订阅设置
  12. OPPO Reno造乐节落地重庆 华语乐坛十大金曲榜单公布
  13. linux数据库能看到系统执行了哪些命令,DB2数据库在linux操作系统的指令有哪些?...
  14. 智能实验室-杀马(Defendio) 3.0.0.615 beta 7
  15. 智慧安防体系包括哪些智能化设备?
  16. Spring Boot 1.5.2.RELEASE中文版
  17. 嘻哈电音综合插件-Digikitz Linked Linked Vibes Workstation WiN-MAC
  18. 2011腾讯QQ通用BUG和变态小秘密!
  19. mac服务器文件夹权限设置密码,如何在Mac os优胜美地给文件和文件夹加密
  20. 怎么样matlab做玫瑰花,Matlab画的玫瑰花

热门文章

  1. 组装一台ITX小钢炮主机
  2. 撼世出击:C/C++编程语言学习资料尽收眼底 电子书+视频教程 (2011年2月20日更新)...
  3. 高斯噪声(gauss noise)
  4. 整容业大革命:AI告诉你怎么整才漂亮?
  5. 开源的在线音频播放器
  6. 一个DWORD类型存储多种数据
  7. 如何抓住下沉市场的商机,微信本地生活小程序这波稳了
  8. 教你使用社交平台JitJat
  9. Android横竖屏切换相关知识点
  10. 今天七夕,30条代码拿去“表白”