Python爬虫学习(1)
爬虫入门
第一次学习Python爬虫,环境是 Python3 环境,参考了中国大学Mooc嵩天教授的Python网络爬虫与信息提取这门课,接下来的系列博客算是学习笔记吧。
爬取网页通用的代码框架
import requests
def getHTMLText(url):
try:
r = requests.get(url, timeout=300)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
if __name__ == "__main__":
url = "http://www.baidu.com"
print(getHTMLText(url))
HTTP协议及Requests库方法
Requests库的7个主要方法
方法 | 说明 |
---|---|
requests.request() | 构造一个请求,支撑以下各方法的基础方法 |
requests.get() | 获取HTML网页的主要方法,对应于HTTP的GET |
requests.head() | 获取HTML网页头信息的方法,对应于HTTP的HEAD |
requests.post() | 向HTML网页提交POST请求的方法,对应于HTTP的POST |
requests.put() | 向HTML网页提交PUT请求的方法,对应于HTTP的PUT |
requests.patch() | 向HTML网页提交局部修改请求,对应于HTTP的PATCH |
requests.delete() | 向HTML页面提交删除请求,对应于HTTP的DELETE |
HTTP协议对资源的操作
方法 | 说明 |
---|---|
GET | 请求获取URL位置的资源 |
HEAD | 请求获取URL位置资源的响应消息报告,即获得该资源的头部信息 |
POST | 请求向URL位置的资源后附加新的数据 |
PUT | 请求向URL位置存储一个资源,覆盖原URL位置的资源 |
PATCH | 请求局部更新URL位置的资源,即改变该处资源的部分内容 |
DELETE | 请求删除URL位置存储的资源 |
Robots协议
Robots协议是为了限制爬虫行为的一种协议,现在大部分的网站都有Robots协议,如爬虫不遵守协议,则可能会有法律风险。
robots.txt的基本语法
\# 注释,* 代表所有,/ 代表根目录
User-agent: *
Disallow: /
几个网站robots.txt的链接
www.baidu.com/robots.txt
news.sina.com.cn/robots.txt
www.jd.com/robots.txt
news.qq.com/robots.txt