Python从入门到精通(第十一篇,基础篇)

今天学习的是requests库,首先,我们来了解一下requests库。

requests是python实现的最简单易用的HTTP库,建议爬虫使用requests

import requests
url = "https://api.github.com/events"

获取某个网页

import requests
r = requests.get("https://api.github.com/events")
print(r)                # <Response [200]>
print(type(r))          # <class 'requests.models.Response'>  
print(r.status_code)    # 200

各种请求

# 发送一个 HTTP POST 请求:
r = requests.post("http://httpbin.org/post",data = {'key':'value'})
r = requests.delete('http://httpbin.org/delete')    # 发送一个 HTTP delete 请求:
r = requests.head('http://httpbin.org/get')         # 发送一个 HTTP head 请求:
r = requests.options('http://httpbin.org/get')      # 发送一个 HTTP options 请求:

get 传递URL参数

?+键值对

response1 = requests.get("http://httpbin.org/get?key1=value1")
print(response1.url)
#http://httpbin.org/get?key1=value1

requests提供了params关键字参数来传递参数

parameter = {
            "key1":"value1",
            "key2":"value2"
            }
response2 = requests.get("http://httpbin.org/get",params = parameter)
print(response2.url)
# http://httpbin.org/get?key1=value1&key2=value2

还可以将一个列表作为值传入

parameter = {
            "key1":"value1",
            "key2":["value21","value22"]
}
response3 = requests.get("http://httpbin.org/get",params = parameter)
print(response3.url)
# http://httpbin.org/get?key1=value1&key2=value21&key2=value22

注意字典里值为 None 的键都不会被添加到 URL 的查询字符串里。

parameter = {
            "key1":"value",
            "key2":None
}
response4 = requests.get("http://httpbin.org/get",params = parameter)
print(response4.url)    #http://httpbin.org/get?key1=value

本次代码的实现需要用到URL

iss.gif

                        素材图片保存后修改对应的文件名

map.gif

import requests
import turtle
response_astros = requests.get('http://api.open-notify.org/astros.json')
result_astros = response_astros.json()
print(result_astros)
response_iss = requests.get('http://api.open-notify.org/iss-now.json')
result_iss = response_iss.json()
print(result_iss)
location = result_iss['iss_position']
lon = location['longitude']
lat = location['latitude']
print(lon,lat)
screen = turtle.Screen()
screen.setup(720,360)
screen.setworldcoordinates(-360,-180,360,180)
screen.bgpic('map.gif')
screen.register_shape("iss.gif")
pen = turtle.Pen()
pen.shape('iss.gif')
pen.up()
pen.goto(float(lon),float(lat))
pen.pensize(5)
pen.color('red')
pen.down()
flag = 1

def self_exit(x,y):
    global flag
    flag = 0
    print(flag)

while flag:
    response_iss = requests.get('http://api.open-notify.org/iss-now.json')
    result_iss = response_iss.json()
    location = result_iss['iss_position']
    lon = location['longitude']
    lat = location['latitude']
    print(lon,lat)
    pen.goto(float(lon),float(lat))
    screen.onclick(self_exit)
    print(flag)

以下是代码实现:

这里我们爬取的的是NASA空间站的经纬信息

以下是运行结果:

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值