settings.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import os
  2. from dotenv import load_dotenv
  3. load_dotenv()
  4. DATABASE_CONFIG = {
  5. 'host': os.getenv('DB_HOST', 'localhost'),
  6. 'port': int(os.getenv('DB_PORT', 3306)),
  7. 'user': os.getenv('DB_USER', 'root'),
  8. 'password': os.getenv('DB_PASSWORD', ''),
  9. 'database': os.getenv('DB_NAME', 'price_crawler'),
  10. 'charset': 'utf8mb4'
  11. }
  12. CRAWLER_CONFIG = {
  13. 'taobao': {
  14. 'base_url': 'https://s.taobao.com',
  15. 'search_url': 'https://s.taobao.com/search',
  16. 'headers': {
  17. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
  18. 'Referer': 'https://www.taobao.com',
  19. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  20. 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
  21. },
  22. 'timeout': 30,
  23. 'retry_times': 3,
  24. 'retry_delay': 2,
  25. 'delay_range': (1, 3),
  26. },
  27. 'jd': {
  28. 'base_url': 'https://search.jd.com',
  29. 'search_url': 'https://search.jd.com/Search',
  30. 'headers': {
  31. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
  32. 'Referer': 'https://www.jd.com',
  33. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  34. 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
  35. },
  36. 'timeout': 30,
  37. 'retry_times': 3,
  38. 'retry_delay': 2,
  39. 'delay_range': (1, 3),
  40. },
  41. 'alibaba1688': {
  42. 'base_url': 'https://s.1688.com',
  43. 'search_url': 'https://s.1688.com/selloffer/offer_search.htm',
  44. 'headers': {
  45. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
  46. 'Referer': 'https://www.1688.com',
  47. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  48. 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
  49. },
  50. 'timeout': 30,
  51. 'retry_times': 3,
  52. 'retry_delay': 2,
  53. 'delay_range': (1, 3),
  54. }
  55. }
  56. LOGGING_CONFIG = {
  57. 'version': 1,
  58. 'disable_existing_loggers': False,
  59. 'formatters': {
  60. 'standard': {
  61. 'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
  62. },
  63. },
  64. 'handlers': {
  65. 'console': {
  66. 'class': 'logging.StreamHandler',
  67. 'level': 'INFO',
  68. 'formatter': 'standard'
  69. },
  70. 'file': {
  71. 'class': 'logging.handlers.RotatingFileHandler',
  72. 'level': 'INFO',
  73. 'formatter': 'standard',
  74. 'filename': 'logs/crawler.log',
  75. 'maxBytes': 1024*1024*10,
  76. 'backupCount': 5,
  77. 'encoding': 'utf-8'
  78. }
  79. },
  80. 'loggers': {
  81. '': {
  82. 'handlers': ['console', 'file'],
  83. 'level': 'INFO',
  84. 'propagate': True
  85. }
  86. }
  87. }