Python爬虫基础总结

在这里插入图片描述​ 

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

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

学习日记

目录

学习日记

一、关于爬虫

1、爬虫的概念

2、爬虫的优点

3、爬虫的分类

4、重要提醒

5、反爬和反反爬机制

6、协议

7、常用请求头和常用的请求方法

8、常见的响应状态码

9、url的详解

二、爬虫基本流程

三、可能需要的库

四、小例

1、requests请求网页

2、python解析网页源码 (使用BeautifulSoup+lxml解析网页源码)

3、保存数据的方法 

 五、Chrmoe浏览器


一、关于爬虫

1、爬虫的概念

    爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序。它可以帮助我们在互联网上自动的获取数据和信息,其本质是一段程序。原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。

    从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。

2、爬虫的优点

        爬虫是一种从网络上高速提取数据的方式。可以把爬虫看成一个机器人,不停地点开一个个网页,从里面复制指定文本或图片进行保存(假设需求就是保存指定文本或图片)。它的手速非常非常快,一瞬间本地磁盘中就已经存了一大堆数据。

3、爬虫的分类

通用爬虫——准守robots协议的爬虫,通常指搜索引擎,抓取的是一整张页面数据

聚焦爬虫——针对特定网站爬虫,无视robots协议,是建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容。

增量式爬虫——检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。

总的来说,爬虫也分善恶

善意的爬虫不破坏被爬取网站的资源,一般都是频率不高的正常访问,不窃取用户隐私。

恶意的爬虫影响网站运营,造成网站宕机。 

4、重要提醒

        爬虫合法,技术无罪,但是不能滥用。使用爬虫时要避免干扰网站正常运行,如果发现用户隐私或其他敏感内容一定不能传播,小心进去喝茶

5、反爬和反反爬机制

反爬机制:门户网站,可以通过指定相应的策略或技术手段,防止爬虫程序进行网站数据的爬取。

反反爬策略:爬虫程序可以通过指定相关的策略或技术手段,破解门户网站中具备的反爬机制,从而可以获取门户网站的数据。#强行爬取可能涉及恶意

6、协议

 robots.txt协议——君子协议,规定了网站中哪些数据可以被爬虫爬取,哪些数据不可以被爬取。

http协议(Hyper Text Transfer Protocal)——超文本传输协议,是一种发布与接收HTML页面的方法,是服务器和客户端进行数据交互的一种形式。

https协议(Hyper Text Transfer Protocol over SecureSocket Layer)——是HTTP协议的加密版本,在HTTP下加入了SSL层,是安全的超文本的传输协议。

7、常用请求头和常用的请求方法

常用请求头

1、User-Agent:浏览器名称。在请求一个网页的时候,服务器通过这个参数就可以知道哪种浏览器在访问。
2、Referer:表明当前这种请求是从哪个url来的。
3、cookie:http协议是无状态。用cookie来标识请求是否是同一个人。

常用的请求方法

get:一般适用于只从服务器获取数据,不会对服务器资源产生影响。

post:向服务器发送数据(登录)等,会对服务器资源产生影响。

8、常见的响应状态码

200:请求正常
301:永久重定向(访问不到某个网页会跳转到另一个网页)
302:临时重定向(未登录访问会跳转到登录页面)
400:请求url在服务器上找不到
403:服务器拒绝访问权限不够
500:服务器内部错误

9、url的详解

scheme://host:port/path/?query-string=xxx#anchor
1、scheme:代表的是访问的协议,一般为http或者https协议
2、host:主机名,域名
3、port:端口号。浏览器默认使用80端口
4、path:查找路径
5、query-string:查询字符串
6、anchor:锚点,前端定位页面

二、爬虫基本流程

浏览器提交请求—>下载网页代码—>解析成页面

模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

Python爬虫基础总结_第1张图片 

三、可能需要的库

from bs4 import BeautifulSoup  #网页解析,获取数据
import re     #正则表达式,文字匹配
import urllib.request,urllib.error    #指定URL,获取网页数据
import xlwt       #EXCEL操作

安装

pip install requests

pip install beautifulsoup4

         BeautifulSoup简单易用,容易理解。但是使用bs4还需要安装另一个类库lxml,用来代替bs4默认的解析器,

用了lxml后,可以大幅度提升解析速度。

四、小例

1、requests请求网页

import requests

resp=requests.get('https://www.baidu.com') #请求百度首页
print(resp) 
print(resp.content) #打印请求到的网页源码

2、python解析网页源码 (使用BeautifulSoup+lxml解析网页源码)

import requests
from bs4 import BeautifulSoup

resp=requests.get('https://www.baidu.com') #请求百度首页
print(resp) 
print(resp.content) #打印请求到的网页源码

bsobj=BeautifulSoup(resp.content,'lxml') #将网页源码构造成BeautifulSoup对象,方便操作
a_list=bsobj.find_all('a') #获取网页中的所有a标签对象
for a in a_list:
    print(a.get('href')) #打印a标签对象的href属性,即这个对象指向的链接地址

3、保存数据的方法 

保存数据的方法大概可以分为几类:保存文本、保存二进制文件(包括图片)、保存到数据库。

import requests
from bs4 import BeautifulSoup

resp=requests.get('https://www.baidu.com') #请求百度首页
print(resp) 
print(resp.content) #打印请求到的网页源码

bsobj=BeautifulSoup(resp.content,'lxml') #将网页源码构造成BeautifulSoup对象,方便操作
a_list=bsobj.find_all('a') #获取网页中的所有a标签对象
text='' 
for a in a_list:
    href=a.get('href') #获取a标签对象的href属性,即这个对象指向的链接地址
    text+=href+'\n' 
with open('url.txt','w') as f: #
    f.write(text) #将text里的数据写入到文本中

 五、Chrmoe浏览器

elements:分析网页结构,获取想要的数据。

console控制台:打印输出网站信息。

sources:加载网页所需要的所有的源文件,除elements的源码之外。

network:查看整个网页发送的所有网络请求。

sessio和cookie是用于保持HTTP长时间连接状态的技术

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

        cookie是由服务器端生成后发送给客户端(一般指浏览),其总是保存在客户端。

cookie基本原理:创建cookie->设置储存cookie->发送cookie->读取cookie

你可能感兴趣的:(Python,python,爬虫)