当前位置 : 主页 > 编程语言 > python >

利用python爬虫(part4)--requests模块之requests.get方法

来源:互联网 收集:自由互联 发布时间:2022-06-15
学习笔记 文章目录 ​​requests模块​​ ​​requests常用方法​​ ​​requests.get()​​ requests模块 关于requests模块的安装 进入cmd,输入以下代码,即可安装: pip install requests requests常用

学习笔记



文章目录

  • ​​requests模块​​
  • ​​requests常用方法​​
  • ​​requests.get()​​



requests模块

  • 关于requests模块的安装

进入cmd,输入以下代码,即可安装:

pip install requests

requests常用方法

requests.get()

  • 作用

向网站发起请求,并获取响应对象。

  • 语法
res = requests.get(url,headers=headers)
#url :需要抓取的URL地址
#headers : 请求头
#timeout : 超时时间,超过时间会抛出异常
  • 响应对象(res)属性
# 响应字符编码
res.encoding
#res.encoding = 'utf-8'

# 字符串
res.text

#字节流
res.content

#HTTP响应码
res.status_code

#实际数据的URL地址
res.url
  • 举个例子1

我们访问测试网站(http://httpbin.org/get).当我们访问这个网站时,网站会返回我们的请求头。

代码:

import requests
import random
from my_user_agent_list import user_agent

url = 'http://httpbin.org/get'

headers = {'User-Agent':random.choice(user_agent)}

#创建请求对象
res = requests.get(url, headers = headers)
#得到html字符串
html = res.text
print(html)

备注:my_user_agent_list模块,是我自定义的模块。模块里放着一个列表user-agent, 列表里包含了各种User-Agent字符串。

控制台输出结果:

{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1",
"X-Amzn-Trace-Id": "Root=1-5e867a3e-79e73bc2a78fb809260d2b4e"
},
"origin": "183.164.105.16",
"url": "http://httpbin.org/get"
}

我们看到,测试网站返回给我们一个json格式的字符串。在这些字符串中我们可以观察到我们发送请求的请求头。

  • 举个例子2(指定响应编码)

在我们向一个网站发起请求时,如果不指定编码形式, 则requests会根据网站的响应,猜测网站的编码。

①不指定编码

代码:

import requests
import random
from my_user_agent_list import user_agent

url = 'http://www.baidu.com/'

headers = {'User-Agent':random.choice(user_agent)}

res = requests.get(url, headers = headers)
print('响应编码:', res.encoding)

控制台输出结果:

响应编码: utf-8

②指定编码

代码:

import requests
import random
from my_user_agent_list import user_agent

url = 'http://www.baidu.com/'

headers = {'User-Agent':random.choice(user_agent)}

res = requests.get(url, headers = headers)
res.encoding = 'gbk'
print('响应编码:', res.encoding)

控制台输出结果:

响应编码: gbk
  • 举个例子3(抓取北极兔图片)

对于非结构化数据(比如:音频,视频,图片),采用二进制的形式抓取。

我们在百度图片里搜索到要抓取的北极兔图片,并检查元素,获取图片地址:

利用python爬虫(part4)--requests模块之requests.get方法_requests

代码:

import requests
import random
from my_user_agent_list import user_agent

url = 'http://b-ssl.duitang.com/uploads/item/201301/15/20130115235815_LQQVU.jpeg'
headers = {'User-Agent':random.choice(user_agent)}

html = requests.get(url, headers = headers).content

#将图片保存到本地
with open('test/北极兔.jpg', 'wb') as f:
f.write(html)

查看爬取到的图片:
利用python爬虫(part4)--requests模块之requests.get方法_爬虫_02

OK!

  • 举个例子4(查看HTTP响应码和实际数据URL地址)

代码:

import requests
import random
from my_user_agent_list import user_agent

url = 'http://www.baidu.com/'
headers = {'User-Agent':random.choice(user_agent)}

res = requests.get(url, headers = headers)

print('HTTP响应码:', res.status_code)
print('URL地址:', res.url)

控制台输出结果:

HTTP响应码: 200
URL地址: https://www.baidu.com/

未完待续。。。 明天再写requests模块的其他方法。

上一篇:利用python爬虫(part7)--初识Xpath之Node节点
下一篇:没有了
网友评论