Update app.py
Browse files
app.py
CHANGED
@@ -81,24 +81,18 @@ def translate_query(query, country):
|
|
81 |
def search_serphouse(query, country, page=1, num_result=10):
|
82 |
url = "https://api.serphouse.com/serp/live"
|
83 |
|
84 |
-
# 검색어 번역
|
85 |
-
translated_query = translate_query(query, country)
|
86 |
-
print(f"Original query: {query}")
|
87 |
-
print(f"Translated query: {translated_query}")
|
88 |
-
|
89 |
payload = {
|
90 |
"data": {
|
91 |
-
"q":
|
92 |
"domain": "google.com",
|
93 |
-
"loc": country, # 국가 이름
|
94 |
-
"
|
95 |
-
"lang": "en",
|
96 |
"device": "desktop",
|
97 |
"serp_type": "web", # web으로 변경
|
98 |
"page": "1",
|
99 |
"verbatim": "0",
|
100 |
"gfilter": "0",
|
101 |
-
"
|
102 |
}
|
103 |
}
|
104 |
|
@@ -108,16 +102,14 @@ def search_serphouse(query, country, page=1, num_result=10):
|
|
108 |
"authorization": f"Bearer {API_KEY}"
|
109 |
}
|
110 |
|
111 |
-
# 디버깅을 위한 출력
|
112 |
-
print("Full request payload:", json.dumps(payload, indent=2, ensure_ascii=False))
|
113 |
-
|
114 |
try:
|
115 |
response = requests.post(url, json=payload, headers=headers)
|
|
|
116 |
print("Response status:", response.status_code)
|
117 |
print("Response content:", response.text)
|
118 |
|
119 |
response.raise_for_status()
|
120 |
-
return {"results": response.json(), "translated_query":
|
121 |
except requests.RequestException as e:
|
122 |
error_msg = f"Error: {str(e)}"
|
123 |
if hasattr(response, 'text'):
|
@@ -132,12 +124,13 @@ def format_results_from_raw(response_data):
|
|
132 |
results = response_data["results"]
|
133 |
translated_query = response_data["translated_query"]
|
134 |
|
135 |
-
|
136 |
-
|
|
|
137 |
return "검색 결과가 없습니다.", []
|
138 |
|
139 |
articles = []
|
140 |
-
for idx, result in enumerate(
|
141 |
articles.append({
|
142 |
"index": idx,
|
143 |
"title": result.get("title", "제목 없음"),
|
@@ -150,6 +143,7 @@ def format_results_from_raw(response_data):
|
|
150 |
})
|
151 |
return "", articles
|
152 |
except Exception as e:
|
|
|
153 |
return f"결과 처리 중 오류 발생: {str(e)}", []
|
154 |
|
155 |
def serphouse_search(query, country):
|
|
|
81 |
def search_serphouse(query, country, page=1, num_result=10):
|
82 |
url = "https://api.serphouse.com/serp/live"
|
83 |
|
|
|
|
|
|
|
|
|
|
|
84 |
payload = {
|
85 |
"data": {
|
86 |
+
"q": query,
|
87 |
"domain": "google.com",
|
88 |
+
"loc": country, # 국가 이름 사용
|
89 |
+
"lang": COUNTRY_LANGUAGES.get(country, "en"),
|
|
|
90 |
"device": "desktop",
|
91 |
"serp_type": "web", # web으로 변경
|
92 |
"page": "1",
|
93 |
"verbatim": "0",
|
94 |
"gfilter": "0",
|
95 |
+
"num": "10" # num으로 변경
|
96 |
}
|
97 |
}
|
98 |
|
|
|
102 |
"authorization": f"Bearer {API_KEY}"
|
103 |
}
|
104 |
|
|
|
|
|
|
|
105 |
try:
|
106 |
response = requests.post(url, json=payload, headers=headers)
|
107 |
+
print("Request payload:", json.dumps(payload, indent=2, ensure_ascii=False))
|
108 |
print("Response status:", response.status_code)
|
109 |
print("Response content:", response.text)
|
110 |
|
111 |
response.raise_for_status()
|
112 |
+
return {"results": response.json(), "translated_query": query}
|
113 |
except requests.RequestException as e:
|
114 |
error_msg = f"Error: {str(e)}"
|
115 |
if hasattr(response, 'text'):
|
|
|
124 |
results = response_data["results"]
|
125 |
translated_query = response_data["translated_query"]
|
126 |
|
127 |
+
# 응답 구조 변경
|
128 |
+
organic_results = results.get('results', {}).get('organic', [])
|
129 |
+
if not organic_results:
|
130 |
return "검색 결과가 없습니다.", []
|
131 |
|
132 |
articles = []
|
133 |
+
for idx, result in enumerate(organic_results, 1):
|
134 |
articles.append({
|
135 |
"index": idx,
|
136 |
"title": result.get("title", "제목 없음"),
|
|
|
143 |
})
|
144 |
return "", articles
|
145 |
except Exception as e:
|
146 |
+
print(f"Format error: {str(e)}") # 디버깅용 출력 추가
|
147 |
return f"결과 처리 중 오류 발생: {str(e)}", []
|
148 |
|
149 |
def serphouse_search(query, country):
|