网络爬虫(Web Spider)又称“网络蜘蛛”或“网络机器人”,它是一种按照一定规则从 Internet 中获取网页内容的程序。广为人知的“搜索引擎”就是最常见的爬虫程序,比如当我们使用百度引擎搜索关键字时,“百度蜘蛛”就会根据您输入的关键字去互联网资源中抓取相应的页面。
Python 爬虫指的是用 Python 语言来编写爬虫程序。除了 Python 外,其他语言也可以编写,比如 Java、PHP 等,不过相比较而言,Python 更为简单和实用。一方面, Python 提供了许多可以应用于爬虫的库和模块;另一方面, Python 语法简单、易读,更适合于初学者学习,因此 Python 爬虫几乎成了网络爬虫的代名词。网络爬虫主要用途是采集数据,它是数据分析不可或缺的工具之一。许多公司专门设立了 Python 爬虫工程师岗位,该岗位的职责就是为公司的业务拓展提供数据支持。除此之外,网络爬虫也给我们的生活带来便利,比如抢购火车票、飞机票等。
许多网站还有着“君子协定”:robots.txt。它规定了本网站上的哪些数据可以被爬取哪些数据不可以被爬取,当然,既然称之为君子协定,你如果想爬规定以外的数据当然还是可以爬取到的。
通过下列代码即可获得当前网站页面的基本源代码元素:
#导入测试所需包
from urllib.request import urlopen
#以读取百度首页为测试用例
url = "https://www.baidu.com/"
#获取相应内容
response = urlopen(url)
#读出相应内容且设置解码格式为UTF-8
print(response.read().decode("utf-8"))
Web请求访问过程
1、服务器渲染:用户通过浏览器向服务器发送请求,服务器根据浏览器所发送的请求参数在数据库中查找相应数据段,为浏览器返回一个已用数据填充的HTML页面。(在页面源代码中可以看到数据)
2、浏览器渲染:用户通过浏览器访问服务器时,第一次请求服务器只会为本次请求返回一个HTML框架,并未为其填充相应数据,在浏览器发出第二次访问时才会为其发送相应数据字段,由浏览器对其进行框架+数据的整合渲染。(在页面源代码中看不到数据)
Http协议协议:就是两个计算机之间为了能够流畅的进行沟通而设置的一个君子协定.常见的协议有TCP/IP.SOAP协议, HTTP协议,SMTP协议等等…
HTTP协议, Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WW.World Wide Web 〉服务器传输超文本到本地浏览器的传送协议.直白点儿,就是浏览器和服务器之间的数据交互遵守的就是HTTP协议。
HTTP协议把一条消息分为三大块内容.无论是请求还是响应都是三块内容:
请求:
请求行 -> 请求方式(GET/POST)请求url地址协议
请求头 -> 放一些服务器要使用的附加信息
请求体 -> 一般放一些请求参数
响应:
状态行 -> 协议状态码
响应头 -> 放一些客户端要使用的一些附加信息
响应体 -> 职务器饭回的直正客户端要用的内容:(HTML,JSON)等
在后面我们写爬虫的时候要格外注意请求头和响应头.这两个地方一般都隐含着一些比较重要的内容
请求头中最常见的一些重要内容(爬虫需要):
1、 User-Agent:请求载体的身份标识(用啥发送的请求)
2、 Referer:防盗链(这次请求是从哪个页面来的?反爬会用到)
3、cookie:本地字符串数据信息(用户登录信息,反爬的token)
瓦
响应头中一些重要的内容:
1、 cookie:本地字符串数据信息(用户登录信息,反爬的token)
2、各种神奇的莫名其妙的字符串(这个需要经验了,一般都是token字样,防止各种攻击和反爬)



