zhishiku_bing.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import requests
  2. import re
  3. from plugins.common import settings
  4. session = requests.Session()
  5. # 正则提取摘要和链接
  6. title_pattern = re.compile('<a.target=..blank..target..(.*?)</a>')
  7. brief_pattern = re.compile('K=.SERP(.*?)</p>')
  8. link_pattern = re.compile(
  9. '(?<=(a.target=._blank..target=._blank..href=.))(.*?)(?=(..h=))')
  10. headers = {
  11. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36 Edg/94.0.992.31'}
  12. proxies = {"http": None,"https": None,}
  13. def find(search_query,step = 0):
  14. try:
  15. url = 'https://cn.bing.com/search?q={}'.format(search_query)
  16. res = session.get(url, headers=headers, proxies=proxies)
  17. r = res.text
  18. title = title_pattern.findall(r)
  19. brief = brief_pattern.findall(r)
  20. link = link_pattern.findall(r)
  21. # 数据清洗
  22. clear_brief = []
  23. for i in brief:
  24. tmp = re.sub('<[^<]+?>', '', i).replace('\n', '').strip()
  25. tmp1 = re.sub('^.*&ensp;', '', tmp).replace('\n', '').strip()
  26. tmp2 = re.sub('^.*>', '', tmp1).replace('\n', '').strip()
  27. clear_brief.append(tmp2)
  28. clear_title = []
  29. for i in title:
  30. tmp = re.sub('^.*?>', '', i).replace('\n', '').strip()
  31. tmp2 = re.sub('<[^<]+?>', '', tmp).replace('\n', '').strip()
  32. clear_title.append(tmp2)
  33. return [{'title': "["+clear_title[i]+"]("+link[i][1]+")", 'content':clear_brief[i]}
  34. for i in range(min(int(settings.librarys.bing.count), len(brief)))]
  35. except:
  36. return []
粤ICP备19079148号