'''
练习1:求1000以内所有的水仙花数
需求:求1000以内的所有的水仙花数,水仙花数是三位数
分析:它的每个位数上的数字的3次幂之和等于它本身
'''
sxh = []
for i in range(100, 1000):
m = list(str(i))
s = 0
for j in m:
s += int(j) ** 3
if s == i:
print(i)
sxh.append(i)
print('1000以内的水仙花数是', sxh)
import requests
import json
class King(object):
def __init__(self, word):
self.url = 'https://fanyi.qq.com/api/translate'
self.headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.2261 SLBChan/10 "
}
self.data = {
"source": "auto",
"target": "auto",
"sourceText": word
}
def get_data(self):
# 使用post方法发送一个post请求,data为请求体的字典
response = requests.post(self.url, data=self.data, headers=self.headers)
return response.content
def parse_data(self, date):
# 将loads方法将json字符串转换为python字典
dict_data = json.loads(date)
# try:
# dict.map
# except:
print(dict_data['translate']['records'][0]['targetText'])
def run(self):
# 编写爬虫逻辑
# url
# headers
# data字典
# 发送请求获取响应
response = self.get_data()
# print(response)
# 数据解析
self.parse_data(response)
if __name__ == '__main__':
# 循环输入需要翻译的中文、英文单词
while True:
word = input("请输入要翻译的中文或英文单词:")
king = King(word)
king.run()
import requests
url = 'https://movie.douban.com/j/chart/top_list'
param = {
'type': '24',
'interval_id':'100:90',
'action': '',
'start': '0',
'limit': '20'
}
headers = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
}
resp = requests.get(url=url,params=param,headers=headers)
print(resp.json())
resp.close()
import requests
url = 'http://httpbin.org/get'
params = {
'name':'germey',
'age':22
}
response = requests.get(url=url,params=params)
print(response.text)
import asyncio
def callback(n):
print('我是回调函数,参数为: {0} '.format(n))
async def main(loop):
print('在异步函数中注册回调函数')
#loop.call_later代表待会执行,参数为(第几个执行,被调用函数名,函数参数)
loop.call_later(2, callback, 11)
loop.call_later(1, callback, 22)
#soon代表待会第一个执行,参数为(被调用函数名,函数参数)
loop.call_soon(callback, 33)
await asyncio.sleep(4)
loop = asyncio.get_event_loop()
print('进入事件循环')
#代表进入事件循环
loop.run_until_complete(main(loop))
print('关闭事件循环')
loop.close()
'''运行结果为:
进入事件循环
在异步函数中注册回调函数
我是回调函数,参数为: 33
我是回调函数,参数为: 22
我是回调函数,参数为: 11
关闭事件循环
'''
#引入异步
import asyncio
#定义一个异步函数
async def add(x,y):
r = x+y
return r
#定一个一个普通函数
async def bad_call(a,b,c,d):
a_b = await add(a,b)
await asyncio.sleep(1)
c_d = await add(c,d)
print (a_b*c_d)
#这个判断方法代表"当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行"
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(bad_call(1,3,3,4))
import requests,json
#爬取肯德基指定位置有多少家餐厅。
url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
keyword = input('请输入要查询的地名:')
data = {
'cname':'',
'pid': '',
'keyword': keyword,
'pageIndex': '1',
'pageSize': '10'
}
header = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'
}
response = requests.post(url=url, data=data, headers=header)
content_json = response.json()
content_json = json.dumps(content_json,ensure_ascii=False)
result = json.loads(content_json)
rowcount = result['Table'][0]['rowcount']
print(rowcount)