爬虫准备知识

一、开发环境

IDE:集成开发环境
(编写,调试和发布python的工具)
常用的python IDE工具:

1、文本工具类IDE

IDLE(python自带的、默认的、常用的、入门级编写工具)								
Sublime Text(专门为程序员开发的第三方专用编程工具)			

2、集成类工具IDE

Pycharm(简单,集成度高,适合较复杂工程)
Anaconda&Spyder(开源免费的集成开发框架,支持近800个第三方库。科学计算,数据分析)

二、网络爬虫与信息提取

1、requests库

自动爬取HTML页面,自动网络请求提交。
python公认的第三方优秀的爬虫库
更多消息见链接[link](http://www.python-requests.org)

Ⅰ、requests库的安装

管理员方式打开命令提示符
输入pip install requests即可

Ⅱ、requests初体验

import requests
r=requests.get("http://www.baidu.com")
print(r.status_code)  # 状态码为200表示连接成功
r.encoding='utf-8'
print(r.text)

在这里插入图片描述
![](https://img-blog.csdnimg.cn/20200309103343163.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0c在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

①、requests.get(url,params=None,**kwargs)

Request:构造一个向服务器请求资源的Request对象
Response:返回一个包含服务器资源Response对象,Response对象包含爬虫返回的内容

url:拟获取页面的url链接
params:url中的额外参数,字典或字节流格式,可选
**kwargs:12个控制访问的参数

②、HTTP协议

HTTP,Hypertext Transfer Protocol,超文本传输协议
	HTTP是一个基于“请求与响应”模式的、无状态的应用层协议
	请求与响应的模式:用户发接请求,服务器做相关响应
	无状态:第一次请求与第二次请求没有关联
	应用层协议:该协议工作在HTTP协议之上

	HTTP协议采用URL作为定位网络资源的标识
	URL格式 http://host[:port][path]
	host:合法的Internet主机域名或IP地址
	port:端口号,缺省端口为80
	path:请求资源的路径(资源在这样的主机或IP地址的服务器上所包含的内部路径)
	HTTPURL实例:
		http://220.181.111.188/duty
		220.181.111.188这台主机duty目录下的资源
	HTTPURL的理解:
		URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源(相当于电脑里一个文件的路径,只不过这个路径不在电脑里,而在Internet上)

③、理解patch和PUT的区别

	假设URL位置有一组数据UserInfo,包括UserID,UserName等20个字段。
	需求:用户修改了UserName,其他不变
	采用PATCH,仅向URL提交Username的局部更新请求。
	采用PUT,必须将所有20个字段一并提交到URL,未提交字段被删除。
	PATCH的最主要好处:节省网络带宽

④、Requests库的head()方法

	r=requests.head(URL)
	r.headers
	获取头部信息的内容,可以用很少的网络流量,获取网络资源的概要信息。

⑤、Requests库的post()方法

post:向网页增加信息
# 向URLPOST一个字典 自动编码为form(表单) 
import requests
payload={'key1':'value1','key2':'value2'}
r=requests.post('http://httpbin.org/post',data=payload)
print(r.text)
运行结果:
{

“args”: {},
“data”: “”,
“files”: {},
“form”: {
“key1”: “value1”,
“key2”: “value2”
},
“headers”: {
“Accept”: “/”,
“Accept-Encoding”: “gzip, deflate”,
“Content-Length”: “23”,
“Content-Type”: “application/x-www-form-urlencoded”,
“Host”: “httpbin.org”,
“User-Agent”: “python-requests/2.23.0”,
“X-Amzn-Trace-Id”: “Root=1-5e662be7-a0cffb6cc463846832ebb4a7”
},
“json”: null,
“origin”: “117.136.88.150”,
“url”: “http://httpbin.org/post”
}

Process finished with exit code 0
在这里插入图片描述

⑥、Requests库的put()方法

put方法和post方法类似,不过put方法会覆盖原有的值

在这里插入图片描述

⑦、Requests库的request(method,url,**kwargs)方法

method:请求方式,对应get/put/post/head/patch/delete/options7种
options是向服务器获取服务器和客户端打交道的参数。这里面并不与获取资源直接相关,因此平时用的比较少

在这里插入图片描述
url:拟获取页面的url链接
**kwargs:控制访问的参数,共13个,均为可选项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
向某一个链接提交某一个文件

在这里插入图片描述在这里插入图片描述

2、robots.txt协议

网络爬虫排除标准(盗亦有道?)
作用:网站告知网络爬虫哪些页面可以抓取,哪些不行。
形式:在网站根目录下的robots.txt文件中
发布了15 篇原创文章 · 获赞 5 · 访问量 7662

猜你喜欢

转载自blog.csdn.net/qq_39926861/article/details/104746095