以豆瓣为例,仅供学习参考;
大致的思路是:
接口怎么抓,入参如何做不在此赘述,主要分享主流程
下面进行步骤拆解
利用http接口获取数据
1、利用接口拼参,使用"{}",配合 .format() 函数来构成遍历网页的目的;
2、最后输出的内容是在列表基础上的字典格式,直接使用pandas的DataFarme进行编译;
3、再将DataFareme的数据写入Excel中完成数据的获取
from urllib.request import Request, urlopen
from fake_useragent import UserAgent
base_url = "https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start={}&limit=20"
# 利用{},配合 .format() 函数来构成遍历网页的目的
i = 0
while True:
# 构造请求头
headers = {
"User-Agent": UserAgent().chrome
}
# 构造url链接地址,并对连接进行遍历
url = base_url.format(i * 20)
# 构造请求
request = Request(url, headers=headers)
# 构造 响应
response = urlopen(request)
# 响应数据代码化
info = response.read().decode()
# 遍历输出代码化的响应
print(info)
break
# if info == "" or info is None:
# break
# i += 1
print(type(info))
可以由输出的内容和查看的类型,数据格式为”str“
直接将字符串内容转存为文件
# 文件的路径必须正确,但是文件不必提前创建好
f_w = open('./新建文档.txt','w',encoding="utf8")
f_w.write(info)
f_w.close()
或者直接将json的数据存下来,直接导进某个文件
import json
import pandas as pd
# 用 open 定义一个文档对象
f = open("./新建文档.txt","r",encoding = "utf8")
print(type(f)) # 这是一个文件对象
# 对文档对象进行 json 解码,解码后,本质是一个"字典对象"
json_data = json.load(f)
print(type(json_data))
直接对字典对象进行DataFrame
aa = pd.DataFrame(json_data)
aa
将 DataFrame 保存在成Excel
直接用DataFrame.to_XX 即可
#文件路径必须正确,文件可以生成
aa.to_excel("./ceshi(1).xlsx",sheet_name="测试",encoding="utf-8")
# 顺带查看文件是否存储,文件位置在哪儿
os.listdir()
os.getcwd()