一个爬虫小实验

本文介绍了HTTP的GET和POST方法,强调了它们在缓存、历史记录、数据长度和安全性等方面的差异。示例展示了如何在Python中使用requests库进行GET和POST请求,以及处理API查询数据。最后提到了在Python3中安装urllib的相关注意事项。
摘要由CSDN通过智能技术生成

一些概念

HTTP

Hypertext Transfer Protocol,超文本传输协议,旨在启用客户端和服务器之间的通信。
HTTP充当客户端和服务器之间的请求-响应协议。
即:客户端/浏览器向服务器发送HTTP请求,然后服务器将响应返回客户端,响应包含有关请求的状态信息,也可能包含所请求的内容。

HTTP方法

GET

GET是最常见的HTTP方法之一,用于从指定资源请求数据;
使用get请求时,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的,如:

/test/demo_form.php?name1=value1&name2=value2

注意:
·GET 请求可被缓存
·GET 请求保留在浏览器历史记录中
·GET 请求可被收藏为书签
·GET 请求不应在处理敏感数据时使用
·GET 请求有长度限制
·GET 请求只应当用于取回数据(不修改)

POST

POST 用于将数据发送到服务器来创建/更新资源。
通过 POST 发送到服务器的数据存储在 HTTP 请求的请求主体中:

POST /test/demo_form.php HTTP/1.1
Host: w3school.com.cn
name1=value1&name2=value2

注意:
·POST 请求不会被缓存
·POST 请求不会保留在浏览器历史记录中
·POST 不能被收藏为书签
·POST 请求对数据长度没有要求

GET versus POST

可以看下这位大佬的博客

爬取新冠数据实验

from urllib import parse
import requests
import pandas as pd
#%%
#使用unquote解析url
URL="https://api.inews.qq.com/newsqa/v1/automation/country/daily/list?countrys=%E5%8D%B0%E5%BA%A6&"
print(parse.unquote(URL))
#%%
#使用quote转码
URL="https://api.inews.qq.com/newsqa/v1/automation/country/daily/list?countrys=%s&"
country=input("请输入查询国家:")
print(URL%(parse.quote(country)))
#%%
#使用request模块数据获取
URL="https://api.inews.qq.com/newsqa/v1/automation/country/daily/list?countrys=%s&"
headers={
    "Referer": "Referer:https://news.qq.com/",
    "Host": "api.inews.qq.com",
    "Origin": "https://news.qq.com",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.40"
    }
country=input("请输入查询国家:")
def get_response(country):
    url=URL%(parse.quote(country))
    data={
        "country":country,
        }
    response=requests.post(url,data=data,headers=headers)
    return response
res=get_response(country)
print(res.text)
#%%
data=res.text
data=eval(data)  #将字符串里的数据拿出来,转换为字典
data=data['data']['印度']
print(data)
#%%
df=pd.DataFrame(data)
print(df)
#%%
#进行一些数据处理
df=df.drop(["confirm_add"],axis=1)  #按列删除一列数据
print(df)

结果如下图:
在这里插入图片描述

urllib安装

在直接pip install urllib的时候报错如下:
在这里插入图片描述
查询后发现是因为,python3中将2.x版本的urllib和urllib2两个库合并为一个urllib,所以在3.x环境中无法直接安装urllib2,需要安装第三方库urllib3来实现安装,同时 pip install urllib时要指定安装版本即pip install urllib=1.23.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值