Python爬虫入门(一)

总述

本来早就想学习下python爬虫了,总是找各种借口,一直拖到现在才开始系统的学习。

我用的教程是中国大学MOOC上的由北京理工大学开设的Python网络爬虫与信息提取。

废话不多说,直接开始。

1. requests库入门

1.1 requests库简介

Requests 是唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。

安装 pip install requests

引入 import requests

7种常用方法

requests.request() 构造一个请求,最基础的方法

requests.get() 获得HTML网页的主要方法,对应于HTTP的GET

requests.head() 获得HTML网页头的主要方法,对应于HTTP的HEAD

requests.post() 提交post请求,POST

requests.put() 提交put请求,PUT

requests.patch() 提交局部修改请求,PATCH

requests.delete() 删除请求,DELETE

requests库的get()方法

r = requests.get(url)

该语句的意为构造一个向服务器请求资源的Request对象,返回的是一个包含服务器资源的Response对象,用r来接收。

Response对象的属性

r.ststus_code http请求的返回状态,200为成功

r.text http响应内容的字符串形式,url对应的页面内容

r.encoding http header中猜测的编码格式

r.apparent_encoding http内容中猜测的响应内容的编码格式,备用

r.content http响应内容的二进制形式

1.2 通用代码框架

Requests库的异常

requests.ConnectionError 网络连接异常

requests.HTTPError http错误异常

requesrs.URLRequired URL缺失异常

requests,ToomanyRedirects 重定向异常,超过最大重定向次数

requests.ConnectTimeOut 连接远程服务器超时异常

requests,Time 请求URL超时,超时异常(包括上述的整个请求过程)

通用代码框架

import requests

def getHTMLText(url):

try:

r = requests.get(url, timeout=30)

r.raise_for_status()

r.encoding = r.apparent_encoding

return r.text

except:

return '超时异常'

if __name__ == '__main__':

url = "https://www.baidu.com/"

print(getHTMLText(url))

1.3 HTTP协议及Requests库方法

HTTP协议

HTTP协议, Hypertext Transfer Protocol, 超文本传输协议。

是一个基于“请求与响应”模式的、无状态的应用层协议。

采用URL作为定位网络资源的标识。

URL

URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源。

格式为:http://host[:port][path]

host: 合法的Internet主机域名或IP地址

port: 端口号,省略端口为80

path: 请求资源的路径

HTTP协议对资源的操作

GET:发送一个请求来取得服务器上的某一资源。

HEAD:HEAD和GET是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。

POST:向服务器提交数据。这个方法用途广泛,几乎目前所有的提交操作都是靠这个完成。

PUT:这个方法比较少见。HTML表单也不支持这个。本质上来讲, PUT和POST极为相似,都是向服务器发送数据。

PATCH:向服务器更新数据。

DELETE:删除某一个资源。

HTTP协议方法与requests库方法一致。

python爬虫入门代码-Python爬虫入门(一) 网络爬虫之规则相关推荐

  1. 玩转python网络爬虫黄永祥pdf下载_Python网络爬虫从入门到实践pdf

    Python网络爬虫从入门到实践 内容简介 本书将介绍如何使用Python编写网络爬虫程序获取互联网上的大数据.本书包括三部分内容:基础部分.进阶部分和项目实践.基础部分(第1~6章)主要介绍爬虫的三 ...

  2. python一千行入门代码-Python 有哪些一千行左右的经典练手项目?

    谢邀.据我了解,没有千行左右的「经典」练手项目.但是我可以推荐一些练手项目.这些项目来着 教你阅读Python开源项目代码 - Python之美 - 知乎专栏 : 和工作中看别人代码差不多,基本每个人 ...

  3. python网络爬虫与信息提取_北京理工大学_Python网络爬虫与信息提取(一)

    学习 北京理工大学 嵩天 课程笔记 课程体系结构: 1.Requests框架:自动爬取HTML页面与自动网络请求提交 2.robots.txt:网络爬虫排除标准 3.BeautifulSoup框架:解 ...

  4. Java网络爬虫入门:第01课:网络爬虫原理

    引言 随着互联网的迅速发展,网络资源越来越丰富,信息需求者如何从网络中抽取信息变得至关重要.目前,有效的获取网络数据资源的重要方式,便是网络爬虫技术.简单的理解,比如您对百度贴吧的一个帖子内容特别感兴 ...

  5. 爬虫基础(1)什么是网络爬虫

    文章目录 一. 认识网络爬虫 二. 网络爬虫的组成 三. 网络爬虫的类型 1. 通用网络爬虫 2. 聚焦网络爬虫 3. 增量式网络爬虫 4. 深层网络爬虫 (1)静态网页 (2)深层页面和表层页面 ( ...

  6. java爬虫面试题_使用Java实现网络爬虫

    网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 另外一些不常使用的名字还有蚂蚁.自动索引.模 ...

  7. 分布式网络爬虫关键技术分析与实现一网络爬虫相关知识介绍

    搜索引擎发展的历史过程与发展现状 1搜索引擎的发展的历史 1990年以前,没有任何人能搜索互联网.所有搜索引擎的祖先,是1990年由Montreal的McGill University学生Alan E ...

  8. python新手入门代码-python新手入门方法

    随着人工智能 大数据的火热 Python成为了广大科学家和普通大众的学习语言.在学习Python的过程中 有很多人感到迷茫 不知道自己该从什么地方入手,今天我们就来说一些新手该如何学习Python编程 ...

  9. 零基础python必背代码-零基础入门学习python 96集全

    零基础入门学习python 96集全 第000讲 愉快的开始(视频+课件)xa0 第001讲 我和Python第一次亲密接触(视频+课件)xa0 第002讲 用Python设第一个游戏(视频+课件+源 ...

最新文章

  1. 避免35岁现象,我给技术人的建议永远是架构师!
  2. SAP MM 物料主数据里某字段看不到就是屏幕格式设置导致的?
  3. java学习类的笔记
  4. Document.visibilityState 页面监听 vue中实现离开页面时计时停止: 停止计时后从上一次开始计时
  5. PHP-电脑搭建服务器
  6. iOS中真机连接电脑运行程序出现问题
  7. phpQuery乱码解决经验分享
  8. 2021-03-24
  9. java反射机制的优点和缺点
  10. php开发的在线客服系统,全开源无加密,支持微信客服对接
  11. html和css基础知识recap(含大量链接参考)
  12. 小鹤双拼 - 微软拼音自动配置双拼方案
  13. excel每行按模板导出为一个excel文件,可以指定列文本生成二维码或者条形码
  14. 第1次作业:软件工程之计算机生涯序言
  15. 收支系统(超超超简版)1.0
  16. 用C语言开发NES游戏(CC65)03、VRAM缓冲区
  17. 企业应用大数据的三重境界:数据·分析·成果
  18. UI开发第一篇——android的九宫格式实现
  19. 对于的MPU6050理解
  20. 阿里巴巴常考面试题目

热门文章

  1. AndroidAnnotations框架简单使用方法
  2. Matlab 图论最短路问题模型代码
  3. 软件测试_APP测试_兼容性测试
  4. SCOI2018 退役记
  5. python之文件读写和异常处理
  6. Go语言字典树定义及实现
  7. vue2.0读书笔记2-进阶
  8. Linux 火狐浏览器安装Flash插入
  9. Swift - 闭包的介绍及用法(以数组排序为例)
  10. Linux设备驱动--块设备(三)之程序设计(转)