Requests.get函数未检索任何数据。怎么了?

时间:2018-06-24 09:13:34

标签: python python-3.x python-requests

尝试遍历某些许可证ID,以从website获取数据。示例:当我在搜索框中输入ID“ E09OS0018”时,我得到一所学校/日托的列表。但是,当我在python脚本中键入以下代码(网站链接和从开发人员工具获得的参数)时,文件中没有任何数据。此requests.get()命令出了什么问题?如果我应该改用requests.post(),那么我将在requests.post()命令中使用哪些参数(对这种方法不太熟悉)。

flLicenseData = requests.get('https://cares.myflfamilies.com/PublicSearch/SuggestionSearch?text=E09OS0018&filter%5Bfilters%5D%5B0%5D%5Bvalue%5D=e09os0018&filter%5Bfilters%5D%5B0%5D%5Boperator%5D=contains&filter%5Bfilters%5D%5B0%5D%5Bfield%5D=&filter%5Bfilters%5D%5B0%5D%5BignoreCase%5D=true&filter%5Blogic%5D=and')
openFile = open('fldata', 'wb')
for chunk in flLicenseData.iter_content(100000):
    openFile.write(chunk)

1 个答案:

答案 0 :(得分:0)

在检查文件内容之前执行openFile.flush()

很有可能,您正在(实际上)将内容写入文件之前立即读取文件。

由于编程语言API,OS和实际物理文件之间的缓冲区级别,写到文件处理程序的内容和实际传输到物理文件的内容之间可能会有时滞。

使用openFile.flush()确保将数据写入文件中。 here是有关冲洗的绝佳解释。

或者使用openFile.close()关闭打开的文件或使用上下文管理器

with open('fldata', 'wb') as open_file:
   for chunk in flLicenseData.iter_content(100000):
         openFile.write(chunk)