Python requests 模块示例代码(更新中)

发布时间 2023-03-30 07:36:07作者: klchang

  Python requests 模块是一个简单优雅的 Python HTTP 库,用于发送 HTTP 请求,并获取响应,从中得到所需信息。请求网址一般通过浏览器 “开发者工具” (F12)中的 Network 标签下的 Fetch/XHR 获得。本文主要是 requests 模块的一些示例代码,requests 入门教程参见 Python requests 模块-RUNOOBQuickstart - Python requests documentation。具体示例代码如下:

 

01. 搜狗搜索数据

import requests

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36' }
url = 'https://www.sogou.com/web'
kw = input('Enter a keyword:')
params = {'query': kw}

r = requests.get(url=url, headers=headers, params=params)
page_text = r.text
with open('sogou.html', 'w', encoding='utf-8') as fp:
    fp.write(page_text)
print('Request URL: ', r.url)
print('Request Type: ', r.request)
print('Response status: ', r.status_code)
print('Over')

 

02. 百度翻译

import requests
import json

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'}
kw = input('Enter a keyword:')
data = {'kw': kw}
url = 'https://fanyi.baidu.com/sug'

r = requests.post(url=url, headers=headers, data=data)
json_data = r.json()
with open('baidu-fanyi.json', 'w', encoding='utf-8') as fp:
    json.dump(json_data, fp=fp, ensure_ascii=False)

print('Request URL: ', r.url)
print('Request Type: ', r.request)
print('Response json data: ', json_data)
print('Over')

 

03. 豆瓣电影排行

import requests
import json

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'}
params = {
    # base params
    'interval_id': '100:90',
    'action':'',
    # other params
    'type': '24',  # movie type
    'start': '0',  # start index
    'limit': '5', # limit number of movies returned
}
url = 'https://movie.douban.com/j/chart/top_list'

r = requests.get(url=url, headers=headers, params=params)
json_data = r.json()
with open('douban-movie-toplist.json', 'w', encoding='utf-8') as fp:
    json.dump(json_data, fp=fp, ensure_ascii=False)
print('Request URL: ', r.url)
print('Request Type: ', r.request)
print('Response json data: ', json_data)
print('Over')

 

04. 肯德基门店信息

import requests
import json

cityname, kw = '北京', '中关村'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'}
data = {
    'cname': cityname, 
    'pid': '',
    'keyword': kw,   
    'pageIndex': '1',
    'pageSize': '10',
}
url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'

r = requests.post(url=url, headers=headers, data=data)
json_data = r.json()
with open('KFC-storelist.json', 'w', encoding='utf-8') as fp:
    json.dump(json_data, fp=fp, ensure_ascii=False)
print('Request URL: ', r.url)
print('Request Type: ', r.request)
print('Response json data: ', json_data)
print('Over')

 

05. 新浪、腾讯股票实时数据

import requests

stocklist = ['sh600000','sz000001']
keystr = ','.join(stocklist)

# Get sina stock spot data
print('=' * 30, 'sina', '='*30)
headers = {'referer': 'https://finance.sina.com.cn'}
url = 'https://hq.sinajs.cn/list=%s' % keystr
r = requests.get(url=url, headers=headers)
page_text = r.text
print('Request URL: ', r.url)
print('Request Type: ', r.request)
print('Response text data: ') 
print(page_text)

# Get tencent stock spot data
print('=' * 30, 'tencent', '='*30)
url = 'https://qt.gtimg.cn/q=%s' % keystr 
r = requests.get(url=url)
page_text = r.text
print('Request URL: ', r.url)
print('Request Type: ', r.request)
print('Response text data: ')
print(page_text)
print('Over')

 

06. 东方财富个股人气榜(top 100)

import requests

payload = {
    'appId': 'appId01',
    'globalId': '786e4c21-70dc-435a-93bb-38',
    'marketType':'',
    'pageNo':1,
    'pageSize':100,
}
url = 'https://emappdata.eastmoney.com/stockrank/getAllCurrentList'

r = requests.post(url, json=payload)
json_data = r.json()
print('Request URL: ', r.url)
print('Request Type: ', r.request)
print('Response json data: ', json_data)
print('Over')

 

参考资料

1. Python爬虫网络请求 requests(get、post)- CSDN博客. https://blog.csdn.net/qq_38232003/article/details/110678650