目录

一、 爬虫的流程

 二、爬虫相关技术介绍

1. HTML和CSS

1> HTML

2> URL网址解释

 3> HTTP与HTTPS 协议

4> Chrome浏览器分析网站

5> Session与Cookie

6> Ajax请求


活动地址:CSDN21天学习挑战赛

**

学习日记 Day12

**

 关于爬虫,相信大家都不陌生,关于为什么要学爬虫,爬虫为什么要用python,爬虫是不是合法等等相关问题在本文就不赘述了。本文主要是关于爬虫的具体实现。

一、 爬虫的流程

爬虫的过程:把网页的URL地址加入到URL队列中,根据URL下载网页内容,得到网页内容,重复提取URL和URL去重复操作,最后提取内容并存储数据。

clientid python 爬虫 python爬虫 csdn_clientid python 爬虫

 二、爬虫相关技术介绍

1. HTML和CSS

1> HTML

HTML全程是超文本标记语言,与程序设计语言不同,没有逻辑结构,采用标记方式进行网页构建,使用<>讲标记括起来。

如下,是一个html文件内容及在网页中的显示:


<html>
    <head>
        <title>演示页面</title>
    </head>
    <body>
        <p>这是一个test网页</p>
    </body>
</html>


clientid python 爬虫 python爬虫 csdn_servlet_02

html中的常用标签如下,完整的标签可参考:HTML 标签参考手册 (w3school.com.cn)

标签名

说明

示例

<!--...-->

定义注释

<!--这是一个注释-->

<a>

定义锚,超链接

<a href="">小地瓜</a>

<div>

划分HTML块

        <div style="color:#00FF00">

            <p>这是绿色的文本</p>

        </div>

        <div style="color:#0000FF">

            <p>这是蓝色的文本</p>

        </div>

h1~h6

标题,6种不同风格的标题

        <h1>title1</h1>

        <h2>title2</h2>

        <h3>title3</h3>

        <h4>title4</h4>

        <h5>title5</h5>

        <h6>title6</h6>

href

超链接地址,和<a>一起使用

<a href="">小地瓜</a>

<img>

图片

<img src="e:\\1.bmp" />

<li>

列表项

        <ol>

            <li>CSDN</li>

            <li>Nowcoder</li>

            <li>博客园</li>

        </ol>

<p>

定义段落

<p>这是绿色的文本</p>

<span>

行内标签

<p><span>提示:</span>这是绿色的文本</p>

src

图片存放路径

<img src="e:\\1.bmp" />

<table>

表格标记

        <table border="1">

            <tr>

                <th>month</th>

                <th>saving</th>

            </tr>

            <tr>

                <td>jsnuary</td>

                <td>$10</td>

            </tr>

        </table>

<td>

列标记

                <td>jsnuary</td>

                <td>$10</td>

<tr>

行标记

            <tr>

                <td>jsnuary</td>

                <td>$10</td>

            </tr>

示例,原始文件在这里(图片路径要根据自己电脑的路径改)


<html>
    <head>
        <!--这是一行注释-->
        <title>演示页面</title>
    </head>
    <body>
        
        <div style="color:#00FF00">
            <p><span>提示:</span>这是绿色的文本</p>
        </div>
        <div style="color:#0000FF">
            <p>这是蓝色的文本</p>
        </div>
        <div style="color:#FF0000">
            <a href="">小地瓜</a>
        </div>
        
        <h1>title1</h1>
        <h2>title2</h2>
        <h3>title3</h3>
        <h4>title4</h4>
        <h5>title5</h5>
        <h6>title6</h6>
        
        <img src="e:\\1.bmp" />

        <p>定义一个列表</p>
        <ol>
            <li>CSDN</li>
            <li>Nowcoder</li>
            <li>博客园</li>
        </ol>

        <p>定义一个表格</p>
        <table border="1">
            <tr>
                <th>month</th>
                <th>saving</th>
            </tr>
            <tr>
                <td>jsnuary</td>
                <td>$10</td>
            </tr>
        </table>
    </body>
</html>


clientid python 爬虫 python爬虫 csdn_jvm_03

显示:

clientid python 爬虫 python爬虫 csdn_clientid python 爬虫_04

2> URL网址解释

一个URL示例:

月薪集中在8k-17k、厌倦大小周、近三成的人没有跳槽过,中国开发者调查报告发布_CSDN资讯的博客-CSDN博客

URL是Uriform Resource Locator的简写,同一资源定位符。URL由以下几部分组成:

  • 协议的类型,如:htps,http等;
  • 主机名称/域名,如:baike.baidu.com;
  • 端口号;
  • 查找路径,如:126313913?;
  • 查询参数(?后面的内容,spm=1000.2115.3001.5926),采用键值对形式,多个键值对之间用&隔开;
  • 锚点,前端用来做面定位的。有些前后端分离项目,也用锚点来做导航(这部分的内容暂时还不是很懂)
  • 前端定位;
  • 锚点导航

 3> HTTP与HTTPS 协议

HTTP协议:全称 Hyper Text Transfer Protocal,中文意思是超文本传输协议,是一种发布和接收HTML页面的方法,服务器端口号是80。

HTTPS协议:全称 Hyper Text Transfer Protocol over SecureSocket Layer,是HTTP协议的加密版本,在HTTP下加入了SSL层,服务器端口号是443。

① 协议常见的请求方式

http协议规定了浏览器与服务器进行数据交互的过程中必须要选择一种交互方式。在http协议中,定义了8种请求方式,常见的有GET请求与POST请求。

GET请求:一般情况下,只从服务器获取数据下来,并不会对服务器资源产生任何影响的时候会使用get请求。

POST请求:向服务器发送数据(登录)、上传文件等,会对服务器资源产生影响的时候会使用POST请求,请求参数在Form Data中。

② 常见请求头

http协议中,向服务器发送一个请求,数据分为三部分:

  • 第一个是把数据放到url中;
  • 第二个是把数据放在body中;
  • 第三个是把数据放在head中;

常见的请求头参数:

  • user-agent:浏览器名称
  • referer:表明当前这个请求是从哪个url过来的
  • cookie:http协议是无状态的,也就是同一个人发送了两次请求。服务器没有能力知道这两个请求是否来自同一个人。而带上cookie就识别为登录过的用户或者同一个请求两次

③ 常见请求状态码

  • 200:请求正常,服务器正常的返回数据
  • 301:永久重定向,比如访问京东以前的网址http://www.360buy.com会重定向到https://www.jd.com
  • 404:请求的url在服务器上找不到,换句话说就是请求的url错误
  • 418:发送请求遇到都武器端反爬虫,服务器拒绝响应数据
  • 500:服务器内部错误,可能是服务器出现了bug

4> Chrome浏览器分析网站

谷歌浏览器:右键——>检查,界面如下:

clientid python 爬虫 python爬虫 csdn_python_05


  • Elements:可以帮助我们分析网页结构,获取我们想要的数据;
  • Console控制台:打印输出网站的一些信息,比如说网站的招聘信息;
  • Sources:相当于一个文件夹一样,加载这个网页所需要的所有的源文件,除了Elements的源代码之外,还有一些CSS文件、JS文件等;
  • NetWork:查看整个网页发送的所有网络请求,一般我们想要去查看某个请求的信息,可以在这里看

5> Session与Cookie

session与cookie用于保持http长时间连接状态的技术。

Session

  • Session代表服务器与浏览器的一次会话过程
  • Session是一种服务器端的机制,Session对象用来存储特定用户会话所需的信息
  • Session由服务器端生成,保存在服务器的内存、缓存、硬盘或数据库中

clientid python 爬虫 python爬虫 csdn_clientid python 爬虫_06


 Cookie

Cookie是由服务端生成后发送给客户端(通常是浏览),Cookie总是保存在客户端。

Cookie的基本原理:

  1. 创建Cookie
  2. 设置存储Cookie
  3. 发送Cookie
  4. 读取Cookie

6> Ajax请求

Ajax在浏览器与Web服务器之间使用异步数据传输。这样就可以使网页从服务器请求少量的信息,而不是整个页面。

Ajax技术独立于浏览器和平台。

Ajax一般返回的是JSON,直接对Ajax地址进行post或get,就返回JSON数据了。

判断是否为Ajax生成数据,看在滚动网页的时候是否发生了刷新,如果页面没有刷新,说明数据自动生成,就是Ajax渲染到界面上的。