由于最近工作中,与同事对接模拟手机浏览器进行广告模拟跳转。又一次接触用到爬虫的知识,以前用过urllib + bs4 + selenium定向爬取网易一元夺宝的商品信息保存在数据库中,当时,还是太年轻,对爬虫不是很了解,对爬虫的robots协议也不知道。现在重新梳理一下爬虫的知识。争取写一个系列,大致内容顺序是requests, bs4,re, scrapy, selenium等。
在介绍requests库之前,先介绍以下基本的http概念,
下面内容是在上嵩天教授课程笔记整理。在这里感谢他。
追寻
HTTP协议HTTP,超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法,HTTP是一种基于"请求与响应"模式的、无状态的应用层协议。HTTP协议采用URL作为定位网络资源的的标识符。
http://host[:post][path]
host:合法的Internet主机域名或ip地址
port:端口号,缺省为80
path:请求资源的路径
HTTP URl的理解:
url是通过HTTP协议存取资源的的Internet路径,一个URL对应一个数据资源
HTTP协议对资源的操作
| 方法 | 说明 |
|---|---|
| GET | 请求获取URL位置的资源 |
| HEAD | 请求获取URL位置资源的响应消息报告,即获得资源的头部信息 |
| POST | 请求向URL位置的资源后附加新的消息 |
| PUT | 请求向URL位置存储一个资源,覆盖原URL位置的资源 |
| PATCH | 请求局部更新URL位置的资源,即改变该处资源的部分内容 |
| DELETe | 请求删除URL位置存储的资源 |
以上方法中,GET,HEAD是从服务器获取信息到本地,PUT,POST,PATCH,DELETE是从本地向服务器提交信息。通过URL和命令管理资源,操作独立无状态,网络通道及服务器成了黑盒子。
文档
pip install requestsrequests库安装小测
import request url = 'https://www.baidu.com' r = requests.get(url) r.encoding = r.apparent_encoding print(r.text[-200:]) Out[13]: 'w.baidu.com/duty/>使用百度前必读 a> < a href= >意见反馈 a> 京ICP证030173号 < img src=//www.baidu.com/img/gs.gif>


