提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
上一篇介绍了爬虫的基本概念。
本篇着重介绍request模块,爬虫入门
提示:以下是本篇文章正文内容,下面案例可供参考
一、request请求
以下是代码示例
务必亲自动手尝试
import requests#上一节讲过如何下载request模块,现在直接导入
url = 'https://www.ainicr.cn/qh/t8.html'#这是我们将要请求的网站
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'
}#这个叫做添加headers请求头,模拟ip地址,在程序请求次数过多时,网站会发现我们的爬虫程序。
def get_data():
res = requests.get(url,headers=headers)
res_text = res.text#这里注意要使用text来获取网页源码
print(res_text)
if __name__ == '__main__':
get_data()
1.1 request两种请求方式(Get\Post)
主要区别是带参数请求的时候
1、Get请求方式,参数通过 parms = data #d是在外部构建的参数。
2、Post请求方式,参数是通过 data = d 这种方式传入的。
两种请求方式的代码如下
import requests
data = {
'name':'zhang',
'age':10
}
url = 'http://httpbin.org/get'
r = requests.get(url,params=data)#这里使用Get方法请求的话,参数使用params来传入
print(r.status_code)
print(r.text)
import requests
d = {
'name':'zhang',
'age':10
}
url = 'http://httpbin.org/post'
r = requests.post(url,data=d)#使用Post方法请求,参数使用data传入
print(r.status_code)#查看响应状态码,成功为200
print(r.text)
二、获取json数据
1.先转换为字典类型,通过键名取键值
代码如下(示例):
import requests,json
d = {
'name':'zhang',
'age':10
}
url = 'http://httpbin.org/post'
r = requests.post(url,data=d)
a = r.text
# print(a)
# print(type(a))#<class 'str'>
#利用内置模块json
dict_json = json.loads(a)#通过json中loads方法转换为字典类型
print(type(dict_json))#<class 'dict'>
uRl = dict_json['url']
print(uRl)#http://httpbin.org/post 通过键名取键值
二、获取二进制数据
以下是代码示例
import requests,json
url = 'https://trademark.zbjimg.com/pattern-prod/2018/image_29/30902511.jpg'
r = requests.get(url)
res = r.content#使用content方法获取二进制数据
print(res)#b 获取到的数据前面有一个b 代表是bytes 二进制数据
print(type(res))#<class 'bytes'>
#下面演示保存在本地
with open ('tupian.png','wb')as f:
f.write(res)
总结
主要讲解了 reques模块使用时需要注意的事项,涉及到很多小细节,务必自己动手尝试!!!