python-爬虫基础-调用api接口或网页
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-爬虫基础-调用api接口或网页,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1926字,纯文字阅读大概需要3分钟。
内容图文
![python-爬虫基础-调用api接口或网页](/upload/InfoBanner/zyjiaocheng/732/8c1a6c9311754cac8b432fe23b3c6727.jpg)
目录
之前写过一篇文章,主要介绍python提供api服务。本节主要介绍python对api服务的调用,也是爬虫的基础。调用api服务主要是用python自带的urllib库。
本节先介绍两个例子,对api进行GET和POST调用。调用的api为上节课提供的例子。api接口服务
urllib提供了一系列用于操作URL的功能。
-
GET
urllib的request
模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面或api接口,然后返回HTTP的响应:
代码片段:
import urllib.request
import urllib.parse
url='http://127.0.0.1:8899/login?name=admin&pwd=admin' #调用的网址
# 设置header头跟post请求方式相同
# headers={"User-Agent": "Mozilla...."}
# req = urllib.request.Request(r'https://www.baidu.com/',headers=headers)
print("get请求")
web= urllib.request.urlopen(url)
print("二进制返回结果")
print(web)
print("解析后的结果")
f=web.read()
print(f)
返回结果:
二进制返回结果
<http.client.HTTPResponse object at 0x000001916DE825C0>
解析后的结果
b'{"code": 200, "message": "success"}'
-
POST
如果要以POST发送一个请求,只需要把参数data
以bytes形式传入。header两种方法,见下面代码片段的注释
'''
加header头两种方法
方法一:
headers = {'Host': 'test.lesson-contents.i.vipcode.com',
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)',
'Accept': r'application/json, text/javascript, */*; q=0.01',
'Referer': r'http://test.lesson-contents.i.vipcode.com', }
req = urllib.request.request(r'http://test.lesson-contents.i.vipcode.com/api/contents/anon/scratch/material/user/list', headers=headers)
方法二:
res = urllib.request.Request(url=req_url)
resp = res.add_header('Host','test.lesson-contents.i.vipcode.com')
resp = res.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)')
...
'''
# post请求参数需要准成二进制类型
params = bytes(urllib.parse.urlencode({'name':'admin','pwd':'admin'}), encoding= 'utf8')
print("post请求")
web = urllib.request.urlopen('http://127.0.0.1:8899/login',params)
#获取结果
f = web.read()
print(f)
返回结果
b'{"code": 200, "message": "success"}'
内容总结
以上是互联网集市为您收集整理的python-爬虫基础-调用api接口或网页全部内容,希望文章能够帮你解决python-爬虫基础-调用api接口或网页所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。