Переглянути джерело

Fix baidusearch and duckduckgosearch (#1488)

### What problem does this PR solve?



### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
tags/v0.9.0
H 1 рік тому
джерело
коміт
d5618749c9
Аккаунт користувача з таким Email не знайдено
2 змінених файлів з 11 додано та 9 видалено
  1. 5
    4
      graph/component/baidu.py
  2. 6
    5
      graph/component/duckduckgosearch.py

+ 5
- 4
graph/component/baidu.py Переглянути файл

@@ -53,10 +53,11 @@ class Baidu(ComponentBase, ABC):
url_res = re.findall(r"'url': \\\"(.*?)\\\"}", response.text)
title_res = re.findall(r"'title': \\\"(.*?)\\\",\\n", response.text)
body_res = re.findall(r"\"contentText\":\"(.*?)\"", response.text)
baidu_res = [re.sub('<em>|</em>', '', '<a href="' + url + '">' + title + '</a> ' + body) for url, title, body
in zip(url_res, title_res, body_res)]
baidu_res = [{"content": re.sub('<em>|</em>', '', '<a href="' + url + '">' + title + '</a> ' + body)} for url, title, body in zip(url_res, title_res, body_res)]
del body_res, url_res, title_res
print(baidu_res, ":::::::::::::::::::::::::::::::::")
return Baidu.be_output(baidu_res)
df = pd.DataFrame(baidu_res)
print(df, ":::::::::::::::::::::::::::::::::")
return df

+ 6
- 5
graph/component/duckduckgosearch.py Переглянути файл

@@ -44,18 +44,19 @@ class DuckDuckGoSearch(ComponentBase, ABC):
ans = self.get_input()
ans = " - ".join(ans["content"]) if "content" in ans else ""
if not ans:
return Baidu.be_output(self._param.no)
return DuckDuckGoSearch.be_output(self._param.no)
if self.channel == "text":
with DDGS() as ddgs:
# {'title': '', 'href': '', 'body': ''}
duck_res = ['<a href="' + i["href"] + '">' + i["title"] + '</a> ' + i["body"] for i in
duck_res = [{"content": '<a href="' + i["href"] + '">' + i["title"] + '</a> ' + i["body"]} for i in
ddgs.text(ans, max_results=self._param.top_n)]
elif self.channel == "news":
with DDGS() as ddgs:
# {'date': '', 'title': '', 'body': '', 'url': '', 'image': '', 'source': ''}
duck_res = ['<a href="' + i["url"] + '">' + i["title"] + '</a> ' + i["body"] for i in
duck_res = [{"content": '<a href="' + i["url"] + '">' + i["title"] + '</a> ' + i["body"]} for i in
ddgs.news(ans, max_results=self._param.top_n)]
print(duck_res, ":::::::::::::::::::::::::::::::::")
return DuckDuckGoSearch.be_output(duck_res)
df = pd.DataFrame(duck_res)
print(df, ":::::::::::::::::::::::::::::::::")
return df

Завантаження…
Відмінити
Зберегти