一、开发环境
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文件中