Python发送请求,构造URL

本文介绍了Python中如何使用Requests库构造请求URL,包括通过params方法构造请求以及发送JSON格式数据的URL,主要应用于爬虫脚本和接口测试。文中详细讲解了在需要将数据类型设置为JSON时的操作步骤。

请求URL的方法(一)

在分析完爬取数据之后,通过params方法构造请求。程序来源:崔庆才

from pyquery import PyQuery as pq
import requests

def getPage(page):
    url = 'https://m.weibo.cn/api/container/getIndex?'     #在怎么来?分析Ajax请求
    hd = {"User-Agent": 'Mozilla'}                         # 模仿浏览器
    params = {'type': 'uid',
              'value': '2830678474',
              'containerid': '1076032830678474',
              'page': page}                                 # 作为参数增加到url中去
    try:
        r = requests.get(url, headers=hd, params=params)
        r.raise_for_status()
        return r.json()                                     # 解析为JSON返回
    except:
        print('-----')

def parsePage(json):
    if json:
        items = json.get('data').get('cards')               # 是一个列表
        for item in items:
            item = item.get('mblog')                        # 是一个字典
            if item == None:
                continue
            content = {}
            content['data'] = item.get('created_at')        # 日期
            content['text'] = pq(item.get('text')).text()   # 借助pyquery将正文中的HTML标签去掉了
            content['source'] = item.get('source')          # 用什么发表
            yield content

def main():
    for i in range(1, 11):                                  # 爬取到第十页结束
        json = getPage(i)
        results = parsePage(json)
        for result in results:
            print(result)

if __name__ == '__main__':
    main()

Requests发送json格式数据的URL(二)

用途:写爬虫脚本和接口测试
描述:一般情况下request发送post请求的时候,不管post的数据类型,默认类型为:application/x-www-form-urlencoded。当需要数据格式为json时,可进行如下操作:
参考:https://blog.csdn.net/u012374229/article/details/46743877

import json
import requests

data = {
    'username': zhangsan,
    'password': 123456
}

# 在headers中添加上content-type参数,指定格式为json
headers = {'Content-Type': 'application/json'}    
# 在发送post请求的时候,将data字典形式的参数用json包转换成json格式。
response = requests.post(url='url', headers=headers, data=json.dumps(data))    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值