1 概述
1.1 版本
服务器版本 |
---|
v7.2.0及之后版本 |
1.2 功能简介
【Python输入】是指使用Python脚本获取的爬虫数据、静态数据、其他数据库数据,作为后续环节的数据来源。
1.3 业务场景
电商用户评论数据采集与整合:
在电商行业,可通过Python爬取商品评论数据,再利用Pandas库进行数据清洗和结构化处理(如去除重复值、填充缺失值),最终将处理后的数据存入数据中台的用户反馈数据库,为后续的舆情分析、商品优化等环节提供数据支持。
2 功能说明
Python输入配置,主要包括:代码和数据预览。
步骤 | 描述 |
---|---|
步骤一:代码配置 | 在代码编辑框中输入Python代码。 |
步骤二:数据预览 | 查看获取的数据数据。 |
2.1 代码
直接在代码编辑框中输入Python代码,支持引用自定义变量和任务参数,如下图:
比如:从网站中获取中小企业的采购意向数据。
具体代码如下:
import time
import urllib.parse
import requests
import json
import urllib
import pandas as pd
# 通过POST接口,从浙江政府采购网-中小企业采购清单页面获得每页的详细采购意向记录
# input: i, int: 采购意向页面值,默认每页100条采购意向记录,可以通过"pageSize"字段设置
# url, string: POST接口地址
# output: string, POST接口的返回值
def askurl(i, url):
# 请求负载信息
now = int(time.time() / 1000) * 1000
request_payload = {
"categoryCode": "110-232730",
"excludeDistrictPrefix": "90",
"isGov": "true",
"keyword": "采购意向",
"pageNo": i,
"pageSize": 100,
"_t": now
}
#请求头信息
head = {
"Content-Type": "application/json;charset=UTF-8",
"Host": "zfcg.czt.zj.gov.cn",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
}
#headers里表示这里的数据获取是post方法,所以使用requests.post函数
response = requests.post(url, headers=head, data=json.dumps(request_payload))
return response.text
# 通过POST接口,获取采购意向的articleId List
# input:url, string: POST接口地址
# output: list of string, 各采购意向articleId的汇总列表
def getlist(url):
proIntentList = []
# range(a, b): 爬取页面设置,前闭后开,a > 0
for z in range(1, 2):
page = askurl(z, url)
jsonStr = json.loads(page)
for one in jsonStr['result']['data']['data']:
articleId = urllib.parse.quote(one['articleId'])
articleId = articleId.replace("/", "%2F")
proIntentList.append(articleId)
return proIntentList
# 通过采购意向的articleId获得各采购意向的详细信息
# input: articleIdList: list of string, 各采购意向articleId的汇总列表
# output: DataFrame, 各采购意向详细情况汇总,一行为一个采购意向
# Note: 空值可能同时以'/'和'NAN'两种形态存在
def getDetailProIntent(articleIdList):
proIntentList = pd.DataFrame()
for articleId in articleIdList:
url = "https://zfcg.czt.zj.gov.cn/portal/detail?articleId=" + articleId + "×tamp=" + str(int(time.time()))
# DataFrame.concat 要求pandas2.x 版本
# concat(flavor = ) 可以为'lxml', 'html5lib', 'bs4' 并要求安装对应包
# 其中 'lxml'需同时设置encoding = 'gbk',后两者不用设置
proIntentList = pd.concat([proIntentList, pd.read_html(url, flavor="html5lib", index_col=0)[0]], ignore_index=True, axis=1)
proIntentList = proIntentList.T
# print(proIntentList)
return proIntentList
def main():
articleIdList = getlist("https://zfcg.czt.zj.gov.cn/portal/category")
data = getDetailProIntent(articleIdList)
# return data
if __name__ == '__main__':
main()
注:默认使用“Python”类型命令,暂不支持用户选择。
2.2 数据预览
当Python代码配置正常时,点击“数据预览”将显示 Python 输入节点获取的数据数据。如下图:
作者:fancy 创建时间:2024-08-26 15:45
最后编辑:倪 更新时间:2025-03-27 15:47
最后编辑:倪 更新时间:2025-03-27 15:47
