栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Python

python的request库详细讲解、七个方法、举例子爬取

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python的request库详细讲解、七个方法、举例子爬取

目录
  • 准备库、测试
    • 安装request库
    • 启动idle
    • 测试百度网页,打印出来
  • Requests库的7个主要方法(前言)
    • request.get(url)
      • Request库的2个重要对象
      • Response对象的属性
      • 实际的例子
    • 爬取网页的通用代码框架
      • Requests库的异常
      • 提供了一个方法,与异常打交道
    • Request库的7个主要方法
      • 理解http协议
      • HTTP协议对资源的操作
      • 理解PATCH和PUT区别
      • HTTP协议和Request库
    • request.post()
    • request.put()
  • 七个方法(详细讲解)
    • request.request(method,url,**kwargs)
      • method:请求方式 七个
      • **kwargs:控制访问的参数,均位可选项
        • params
        • data
        • json
        • headers
        • cookies
        • files
        • timeout 超时时间
        • proxies
        • allow_redirects、stream、verify、cert
        • 总结
    • requests.get(url,params=None,**kwargs)
    • request.head(url,**kwargs)
    • requests.post(url,data=None,json=None,**kwargs)
    • requests.put(url,data=None,**kwargs)
    • requests.patch(url,data=None,**kwargs)
    • requests.delete(url,**kwargs)
  • 总结
  • 举例
    • 京东爬取
    • 亚马逊商品页面爬取
      • 访问成功200
      • 访问500
    • 百度/360搜索关键词提交
    • 网络图片的爬取和存储
  • 代码的可靠和稳定最重要

准备库、测试 安装request库
pip install requests

启动idle

测试百度网页,打印出来


看到百度的主页已经被抓取下来

Requests库的7个主要方法(前言)

request.get(url)



打开request库的源代码,get方法使用了request方法来封装

Request库的2个重要对象


Response对象的属性


实际的例子



r.apparent_encoding:根据网页内容分析出的编码方式

爬取网页的通用代码框架 Requests库的异常

提供了一个方法,与异常打交道



Request库的7个主要方法

理解http协议

用户请求url,服务器做出响应


HTTP协议对资源的操作


通过这六个进行管理,每个都是独立的。

理解PATCH和PUT区别

HTTP协议和Request库


request.post()


request.put()

七个方法(详细讲解)

request.request(method,url,**kwargs)

method:请求方式 七个

**kwargs:控制访问的参数,均位可选项 params

data

json

headers

cookies

files

timeout 超时时间

proxies

allow_redirects、stream、verify、cert

总结

requests.get(url,params=None,**kwargs)

get方法爬取一些内容,并向服务器发送一些内容。

request.head(url,**kwargs)

requests.post(url,data=None,json=None,**kwargs)

requests.put(url,data=None,**kwargs)

requests.patch(url,data=None,**kwargs)

requests.delete(url,**kwargs)


后六个方法,这六个方法会常用到一些访问控制参数,所以把参数量放到了函数设计里面,那些不常用的,就放倒了可选的访问字段里面。

总结


举例 京东爬取


亚马逊商品页面爬取

访问成功200

访问500






百度/360搜索关键词提交

Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import requests
>>> kv = {'wd':'Python'}
>>> r = request.get("http://www.baidu.com/s",params = kv)
Traceback (most recent call last):
  File "", line 1, in 
    r = request.get("http://www.baidu.com/s",params = kv)
NameError: name 'request' is not defined
>>> r = requests.get("http://www.baidu.com/s",params = kv)
>>> r.status_code
200
>>> 

请求成功

Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import requests
>>> kv = {'wd':'Python'}
>>> r = request.get("http://www.baidu.com/s",params = kv)
Traceback (most recent call last):
  File "", line 1, in 
    r = request.get("http://www.baidu.com/s",params = kv)
NameError: name 'request' is not defined
>>> r = requests.get("http://www.baidu.com/s",params = kv)
>>> r.status_code
200
>>> r.requests.url
Traceback (most recent call last):
  File "", line 1, in 
    r.requests.url
AttributeError: 'Response' object has no attribute 'requests'
>>> r.request.url
'https://wappass.baidu.com/static/captcha/tuxing.html?&logid=8036147062640333629&ak=c27bbc89afca0463650ac9bde68ebe06&backurl=https%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3DPython&signature=2fa70a21294522eebadb45a7c1695212×tamp=1632972573'
>>> len(r.text)
1545
>>> r.text
'nnn    n    çx99¾åº¦å®x89åx85¨éªx8cè¯x81n    n    n    n    n    n    n    n    n    n    è¿x94åx9bx9eé¦x96页n    n    n        n        

éx97®é¢x98åx8fx8dé¦x88

n nnnnn'



网络图片的爬取和存储




Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import requests
>>> path = "E:/tp/abc.jpg"
>>> url = "http://www.sinaimg.cn/dy/slidenews/1_img/2016_43/63957_743512_229766.jpg"
>>> r = requests.get(url)
>>> r.status_code
200
>>> with open(path,'wb') as f:
	f.write(r.content)

	
156992
>>> 
>>> f.close()
>>> 



代码的可靠和稳定最重要

代码怎么执行都不会错

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/280325.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号