python爬虫笔记二

因为有时候,我们爬取一些网站的时候,会出现403错误,我们需要进行一些浏览器的模拟,游览器的模拟有两种方式
#  模拟浏览器的两种方式
- ## 使用build_opener()修改报头,代码如下:
 
```
import urllib.request
url="http://...."    
headers=("User-Agent","Mozilla/5.0 (Windows NT 6.3; W…) Gecko/20100101 Firefox/57.0")//定义的格式("User-Agent",具体信息),具体信息从浏览器中获取
opener=urllib.request.build_opener()
opener.addheaders=[headers]
data=opener.open(url).read()
```
- ## 使用add_header()添加报头

```
import urllib.request
url="http:....."
req=urllib.request.Request(url)
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.3; W…) Gecko/20100101 Firefox/57.0")
data=urllib.request.urlopen(req).read()

```
# http请求实战
http请求包括八种类型
1. GET请求:主要是通过url传递信息,可以直接在url中写上要传递的信息,也可以由表单进行传递,表单传递的话会自动转为url地址中的数据,通过url地址传递。
2. POST请求:可以向服务器请求提交数据
3. PUT请求:请求服务器存储资源,通常需要指定存储的位置
4. DELETE请求:请求服务器删除一个资源
5. HEAD请求:请求获取对应的http报头信息
6. OPTIONS请求:获取当前的url所支持的请求类型
7. TRACE请求:用于测试或者诊断
8. CONNECT请求:同上

---


那么作为经常用的post和get请求他们有什么区别?post和get的数据的安全性又如何?

1. 两者都是明文传输,因为get将请求的数据转化为url,相对较而言get请求安全性低一点
2. GET的URL会被放在浏览器历史和WEB 服务器日志里面。而post是不会的,发送完数据就没有
3. GET使用的好处是可以手工在浏览器输入提交的数据请求
4. 可以重复的交互,比如取个数据,跳个页面, 用GET.不可以重复的操作,比如创建一个条目/修改一条记录,用POST因为POST不能被缓存,所以浏览器不会多次提交。
> [以上来自知乎,感觉还是比较清晰的](https://www.zhihu.com/question/31640769)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值