前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫系列:通用代码框架

Python爬虫系列:通用代码框架

作者头像
小Bob来啦
发布2021-02-09 15:11:40
4490
发布2021-02-09 15:11:40
举报
文章被收录于专栏:用户8057608的专栏

在对网页上的内容进行爬取时,会遇到各种各样的问题,在最初开始学时也难处理,那么,拥有好的编程习惯就会轻松很多。

当我们在使用Requests库时经常遇到的问题无非是网络问题,连接的超时问题,或者你自己代码有错误...

下面列举了一些相关的错误:

异常提示:

异常说明:

requests.ConnectionError

网络连接错误异常,如DNS查询失败,拒绝连接等

requests.HTTPError

HTTP错误异常

requests.URLRequired

URL缺失异常

requests.TooManyRedirects

超过最大重定向次数,产生重定向异常

requests.ConnectTimeout

连接远程服务器超时异常

requests.Timeout

请求URL超时,产生超时异常

说到HTTP,首先HTTP协议是个超文本传输协议,且是一个基于"请求与响应"模式的,无状态的应用层协议。HTTP协议采用URL作为定位网络资源的标识。

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

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

  1. host:合法的Internet主机域名或IP地址
  2. port:端口号:缺省端口为80
  3. path:请求资源的路径

HTTP协议对资源的操作:

  • GET:请求获取URL位置的资源
  • HRAD:请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
  • POST:请求向URL位置的资源后附加新的数据
  • PUT:请求向URL位置存储一个资源,覆盖URL位置的资源
  • PATCH:请求局部更新URL位置的资源,即改变该处资源的部分内容
  • DELETE:请求删除URL位置存储的资源

理解PATCH和PUT的区别:

假设URL位置有一组数据User info,包括UserID,UserName等20个字段,需求:用户只改变了UserName,UserID等其它不变。

1.采用PATCH,仅向URL提交USERName的局部更新请求

2.采用PUT,必须将所有20个字段一并提交到URL,未提交字段将被删除

当采用PATCH时,最大的好处便是节省了网络带宽。

通用代码举例:

代码语言:javascript
复制
import requestsdef getHTMLText(url):    try:        r=requests.get(url,timeout=30)        r.raise_for_status()        r.encoding=r.apparent_encoding        return r.text    except:        return 0if __name__=="__main__":    url="http://www.baidu.com"#可自己修改试试    print(getHTMLText(url))

以上代码仅供参考,通用部分为def函数部分。

Python爬虫系列,未完待续...

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员Bob 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档