tools.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import hashlib
  2. import socket
  3. import re
  4. def sha1(text: str):
  5. """
  6. 十六进制数字字符串形式摘要值
  7. @param text: 字符串文本
  8. @return: 摘要值
  9. """
  10. _sha1 = hashlib.sha1()
  11. _sha1.update(text.encode("utf-8"))
  12. return _sha1.hexdigest()
  13. def get_host_ip():
  14. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  15. try:
  16. s.connect(('8.8.8.8', 80))
  17. ip = s.getsockname()[0]
  18. finally:
  19. s.close()
  20. return ip
  21. def check_crawl_title(title: str):
  22. crawl_keywords = {
  23. '招标', '流标', '评标', '询价', '中标候选人', '抽签', '谈判', '中选', '意见征询',
  24. '更正公告', '废标', '补遗', '议价', '邀请', '资格预审', '竞标', '变更', '遴选',
  25. '磋商', '项目', '评审', '询比', '开标', '澄清', '比选', '中止', '采购', '竟价',
  26. '招投标', '拟建', '成交', '中标', '竞争性谈判', '工程', '验收公告', '更正',
  27. '单一来源', '变更公告', '合同', '违规', '评判', '监理', '竞价', '答疑',
  28. '终止', '系统'
  29. }
  30. for keyword in crawl_keywords:
  31. valid_keyword = re.search(keyword, title)
  32. if valid_keyword is not None:
  33. return valid_keyword
  34. else:
  35. return None