2025-12-17 04:00:14 [scrapy.utils.log] INFO: Scrapy 2.11.1 started (bot: news_scraper) 2025-12-17 04:00:14 [scrapy.utils.log] INFO: Versions: lxml 6.0.2.0, libxml2 2.14.6, cssselect 1.3.0, parsel 1.10.0, w3lib 2.3.1, Twisted 25.5.0, Python 3.11.13 (main, Aug 12 2025, 22:39:41) [GCC 14.2.0], pyOpenSSL 25.3.0 (OpenSSL 3.5.3 16 Sep 2025), cryptography 46.0.1, Platform Linux-5.15.0-157-generic-x86_64-with 2025-12-17 04:00:14 [scrapy.addons] INFO: Enabled addons: [] 2025-12-17 04:00:14 [asyncio] DEBUG: Using selector: EpollSelector 2025-12-17 04:00:14 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor 2025-12-17 04:00:14 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop 2025-12-17 04:00:15 [scrapy.extensions.telnet] INFO: Telnet Password: 691ca341a8d52a66 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from creating-client-class.iot-data to creating-client-class.iot-data-plane 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from before-call.apigateway to before-call.api-gateway 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from request-created.machinelearning.Predict to request-created.machine-learning.Predict 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.autoscaling.CreateLaunchConfiguration to before-parameter-build.auto-scaling.CreateLaunchConfiguration 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.route53 to before-parameter-build.route-53 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from request-created.cloudsearchdomain.Search to request-created.cloudsearch-domain.Search 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from docs.*.autoscaling.CreateLaunchConfiguration.complete-section to docs.*.auto-scaling.CreateLaunchConfiguration.complete-section 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.logs.CreateExportTask to before-parameter-build.cloudwatch-logs.CreateExportTask 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from docs.*.logs.CreateExportTask.complete-section to docs.*.cloudwatch-logs.CreateExportTask.complete-section 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.cloudsearchdomain.Search to before-parameter-build.cloudsearch-domain.Search 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from docs.*.cloudsearchdomain.Search.complete-section to docs.*.cloudsearch-domain.Search.complete-section 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/endpoints.json 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/sdk-default-configuration.json 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Event choose-service-name: calling handler 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/s3/2006-03-01/service-2.json.gz 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json.gz 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/partitions.json 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler ._handler at 0x7f6c1b994860> 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2025-12-17 04:00:15 [botocore.endpoint] DEBUG: Setting s3 timeout as (60, 60) 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/_retry.json 2025-12-17 04:00:15 [botocore.client] DEBUG: Registering retry handlers for service: s3 2025-12-17 04:00:15 [botocore.utils] DEBUG: Registering S3 region redirector handler 2025-12-17 04:00:15 [botocore.utils] DEBUG: Registering S3Express Identity Resolver 2025-12-17 04:00:15 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.closespider.CloseSpider', 'scrapy.extensions.feedexport.FeedExporter', 'scrapy.extensions.logstats.LogStats', 'scrapy.extensions.throttle.AutoThrottle'] 2025-12-17 04:00:15 [scrapy.crawler] INFO: Overridden settings: {'AUTOTHROTTLE_ENABLED': True, 'BOT_NAME': 'news_scraper', 'CLOSESPIDER_TIMEOUT': 1800, 'CONCURRENT_REQUESTS': 4, 'DOWNLOAD_DELAY': 2, 'FEED_EXPORT_ENCODING': 'utf-8', 'LOG_FILE': '/opt/scrapyd/logs/news_scraper/vnexpress_timestamp/dc1c1a8cdafc11f099e2d6783c969646.log', 'NEWSPIDER_MODULE': 'news_scraper.spiders', 'REQUEST_FINGERPRINTER_IMPLEMENTATION': '2.7', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['news_scraper.spiders'], 'TWISTED_REACTOR': 'twisted.internet.asyncioreactor.AsyncioSelectorReactor'} 2025-12-17 04:00:15 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware', 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', 'news_scraper.middlewares.NewsScraperDownloaderMiddleware', 'scrapy.downloadermiddlewares.retry.RetryMiddleware', 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] 2025-12-17 04:00:15 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] 2025-12-17 04:00:15 [scrapy.middleware] INFO: Enabled item pipelines: [] 2025-12-17 04:00:15 [scrapy.core.engine] INFO: Spider opened 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from creating-client-class.iot-data to creating-client-class.iot-data-plane 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from before-call.apigateway to before-call.api-gateway 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from request-created.machinelearning.Predict to request-created.machine-learning.Predict 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.autoscaling.CreateLaunchConfiguration to before-parameter-build.auto-scaling.CreateLaunchConfiguration 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.route53 to before-parameter-build.route-53 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from request-created.cloudsearchdomain.Search to request-created.cloudsearch-domain.Search 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from docs.*.autoscaling.CreateLaunchConfiguration.complete-section to docs.*.auto-scaling.CreateLaunchConfiguration.complete-section 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.logs.CreateExportTask to before-parameter-build.cloudwatch-logs.CreateExportTask 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from docs.*.logs.CreateExportTask.complete-section to docs.*.cloudwatch-logs.CreateExportTask.complete-section 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.cloudsearchdomain.Search to before-parameter-build.cloudsearch-domain.Search 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Changing event name from docs.*.cloudsearchdomain.Search.complete-section to docs.*.cloudsearch-domain.Search.complete-section 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/endpoints.json 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/sdk-default-configuration.json 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Event choose-service-name: calling handler 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/s3/2006-03-01/service-2.json.gz 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json.gz 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/partitions.json 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler ._handler at 0x7f6c1a9f99e0> 2025-12-17 04:00:15 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2025-12-17 04:00:15 [botocore.endpoint] DEBUG: Setting s3 timeout as (60, 60) 2025-12-17 04:00:15 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/_retry.json 2025-12-17 04:00:15 [botocore.client] DEBUG: Registering retry handlers for service: s3 2025-12-17 04:00:15 [botocore.utils] DEBUG: Registering S3 region redirector handler 2025-12-17 04:00:15 [botocore.utils] DEBUG: Registering S3Express Identity Resolver 2025-12-17 04:00:15 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2025-12-17 04:00:15 [vnexpress_timestamp] INFO: Spider opened: vnexpress_timestamp 2025-12-17 04:00:15 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6025 2025-12-17 04:00:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) 2025-12-17 04:00:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) 2025-12-17 04:00:24 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/) 2025-12-17 04:00:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:00:26 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/chat/completions', 'files': None, 'json_data': {'messages': [{'role': 'user', 'content': 'Act as a content analysis tool. I will provide you with a piece of content, and your task is to extract relevant tags (keywords or phrases) that summarize the main topics, themes, or ideas present in the text. The tags should be concise, specific, and useful for categorization or search purposes. Ignore common filler words (e.g., \'the\', \'and\', \'is\') unless they are part of a specific concept or phrase. After analyzing the content, return the tags in a simple list format. Here is the content to analyze: Trong gần 10 năm qua, ông Charlie Hicks, nhân viên kế toán nghỉ hưu và cựu binh không quân ở Pensacola, Florida, ngày nào cũng đến nhà hàng Shrimp Basket, gọi một bát súp gumbo cho bữa trưa và ngồi xem bóng chày trên TV. Bếp trưởng Donell Stallworth thường ngồi trò chuyện với ông Hicks khi công việc không quá bận rộn. Họ trao đổi về bóng chày cùng những chủ đề khác và bắt đầu thân nhau. Hồi đầu tháng 9, ông Hicks, 78 tuổi, không đến nhà hàng ăn trưa như thường lệ. Denise Galloway, quản lý nhà hàng, đã gọi điện cho Hicks và biết ông bị ốm. Galloway đã mang súp gumbo đến nhà ông, nhưng Hicks nhờ cô để bên ngoài cửa vì không muốn lây bệnh cho cô. Vài ngày trôi qua, ông Hicks vẫn không tới nhà hàng. Galloway gọi lại nhưng không ai nhấc máy, nên đã kể cho Stallworth những gì xảy ra. "Nghe chuyện, tôi cầm chìa khóa xe và lập tức rời đi", Stallworth nói. Hôm đó là ngày 11/9. Stallworth đến căn hộ của ông Hicks, gõ cửa hai lần nhưng không thấy ai trả lời. Đang định rời đi, anh nghe thấy một tiếng kêu cứu yếu ớt. Cánh cửa không khóa và khi mở ra, anh thấy ông Hicks nằm trên sàn nhà. Ông bị ngã, gãy hai xương sườn và mất nước nghiêm trọng. "Ông ấy thậm chí không biết ngày giờ, không thể nói chuyện được vì mất nước", Stallworth kể lại. Anh đã lập tức gọi 911, cố gắng cho ông Hicks uống chút nước trong khi chờ xe cấp cứu. Ông Hicks phải nằm viện hai tháng, sau đó tập phục hồi chức năng. Những người bạn từ nhà hàng Shrimp Basket thường xuyên đến thăm và mang súp gumbo cho ông. "Tôi không biết chuyện gì sẽ xảy ra nếu Stallworth không xuất hiện", Hicks hôm 16/12 nói với truyền thông địa phương. Các nhân viên của Shrimp Basket mô tả ông Hicks giống như "ông nội nuôi" của nhà hàng. Khi biết chủ căn hộ nơi của ông Hicks thuê sắp tăng giá, họ đã thuê giúp ông một căn khác gần nhà hàng, thậm chí giúp sửa chữa, dọn dẹp cho đến khi ông được xuất viện. Ông Hicks chưa từng kết hôn và không có con. Chia sẻ về bản thân, ông nói mình là người "đơn độc" suốt cuộc đời, nhưng các nhân viên Shrimp Basket cho hay Hicks hiện là một phần của "gia đình". Khi ông xuất viện và chuyển đến căn hộ mới, họ mang súp gumbo đến vì cho rằng ông vẫn cần thời gian hồi phục. "Họ nói là đang ghi nợ, nhưng tôi vẫn chưa thấy hóa đơn", ông kể. Hồi đầu tuần, Jeff Brooks, chủ sở hữu Shrimp Basket, thông báo ông Hicks sẽ được ăn súp gumbo miễn phí suốt đời. Chuỗi nhà hàng cũng tặng súp gumbo miễn phí với bất kỳ đơn hàng nào trong thứ Hai, nhằm tri ân ông Hicks. Trả lời truyền thông, ông Hicks bối rối và cảm động trước sự quan tâm này. "Tôi đâu có tìm ra phương pháp chữa ung thư. Tôi chỉ ngã trong căn hộ của mình", ông bày tỏ. Các nhân viên nhà hàng hy vọng câu chuyện này sẽ truyền cảm hứng, khiến mọi người quan tâm đến nhau nhiều hơn. "Với chúng tôi, ai cũng quan trọng. Mỗi người bước qua cánh cửa đó, chúng tôi đều đối xử với họ như với ông Hicks", một quản lý nói.'}], 'model': 'gpt-4o-mini', 'max_tokens': 200, 'temperature': 0.3}} 2025-12-17 04:00:26 [openai._base_client] DEBUG: Sending HTTP Request: POST https://api.openai.com/v1/chat/completions 2025-12-17 04:00:26 [httpcore.connection] DEBUG: connect_tcp.started host='api.openai.com' port=443 local_address=None timeout=900 socket_options=None 2025-12-17 04:00:26 [httpcore.connection] DEBUG: connect_tcp.complete return_value= 2025-12-17 04:00:26 [httpcore.connection] DEBUG: start_tls.started ssl_context= server_hostname='api.openai.com' timeout=900 2025-12-17 04:00:26 [httpcore.connection] DEBUG: start_tls.complete return_value= 2025-12-17 04:00:26 [httpcore.http11] DEBUG: send_request_headers.started request= 2025-12-17 04:00:26 [httpcore.http11] DEBUG: send_request_headers.complete 2025-12-17 04:00:26 [httpcore.http11] DEBUG: send_request_body.started request= 2025-12-17 04:00:26 [httpcore.http11] DEBUG: send_request_body.complete 2025-12-17 04:00:26 [httpcore.http11] DEBUG: receive_response_headers.started request= 2025-12-17 04:00:29 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 17 Dec 2025 04:00:29 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'access-control-expose-headers', b'X-Request-ID'), (b'openai-organization', b'user-bmggli0qfnphtzkdehrnfdrn'), (b'openai-processing-ms', b'1960'), (b'openai-project', b'proj_AqBCEfNib7E5LbrMYDz2oklk'), (b'openai-version', b'2020-10-01'), (b'x-envoy-upstream-service-time', b'1978'), (b'x-ratelimit-limit-requests', b'30000'), (b'x-ratelimit-limit-tokens', b'150000000'), (b'x-ratelimit-remaining-requests', b'29999'), (b'x-ratelimit-remaining-tokens', b'149998960'), (b'x-ratelimit-reset-requests', b'2ms'), (b'x-ratelimit-reset-tokens', b'0s'), (b'x-request-id', b'req_6065e51984b34a73ba4f4756835482cd'), (b'x-openai-proxy-wasm', b'v0.1'), (b'cf-cache-status', b'DYNAMIC'), (b'Set-Cookie', b'__cf_bm=q9CG9futcjCbgmyIkOZY4oU7vyZaRtTO77Lswqa.FLw-1765944029-1.0.1.1-EpuVwpnaQLNc.sKh.xj3nVBa8gu4ECXzZv6Ors7m1cAVDMNQ9zS26MZClxl3BQ.11d_1m_HKWAaJJ6jl3aoOoTDQvOdUiTw2zbHOX4KiJ88; path=/; expires=Wed, 17-Dec-25 04:30:29 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), (b'Strict-Transport-Security', b'max-age=31536000; includeSubDomains; preload'), (b'X-Content-Type-Options', b'nosniff'), (b'Set-Cookie', b'_cfuvid=4_PvBORQbRKS8He.BAPs1uCQ_1M1psZ8TTx1IzMAqgM-1765944029139-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), (b'Server', b'cloudflare'), (b'CF-RAY', b'9af383787d9adda1-HKG'), (b'Content-Encoding', b'gzip'), (b'alt-svc', b'h3=":443"; ma=86400')]) 2025-12-17 04:00:29 [httpx] INFO: HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" 2025-12-17 04:00:29 [httpcore.http11] DEBUG: receive_response_body.started request= 2025-12-17 04:00:29 [httpcore.http11] DEBUG: receive_response_body.complete 2025-12-17 04:00:29 [httpcore.http11] DEBUG: response_closed.started 2025-12-17 04:00:29 [httpcore.http11] DEBUG: response_closed.complete 2025-12-17 04:00:29 [openai._base_client] DEBUG: HTTP Response: POST https://api.openai.com/v1/chat/completions "200 OK" Headers([('date', 'Wed, 17 Dec 2025 04:00:29 GMT'), ('content-type', 'application/json'), ('transfer-encoding', 'chunked'), ('connection', 'keep-alive'), ('access-control-expose-headers', 'X-Request-ID'), ('openai-organization', 'user-bmggli0qfnphtzkdehrnfdrn'), ('openai-processing-ms', '1960'), ('openai-project', 'proj_AqBCEfNib7E5LbrMYDz2oklk'), ('openai-version', '2020-10-01'), ('x-envoy-upstream-service-time', '1978'), ('x-ratelimit-limit-requests', '30000'), ('x-ratelimit-limit-tokens', '150000000'), ('x-ratelimit-remaining-requests', '29999'), ('x-ratelimit-remaining-tokens', '149998960'), ('x-ratelimit-reset-requests', '2ms'), ('x-ratelimit-reset-tokens', '0s'), ('x-request-id', 'req_6065e51984b34a73ba4f4756835482cd'), ('x-openai-proxy-wasm', 'v0.1'), ('cf-cache-status', 'DYNAMIC'), ('set-cookie', '__cf_bm=q9CG9futcjCbgmyIkOZY4oU7vyZaRtTO77Lswqa.FLw-1765944029-1.0.1.1-EpuVwpnaQLNc.sKh.xj3nVBa8gu4ECXzZv6Ors7m1cAVDMNQ9zS26MZClxl3BQ.11d_1m_HKWAaJJ6jl3aoOoTDQvOdUiTw2zbHOX4KiJ88; path=/; expires=Wed, 17-Dec-25 04:30:29 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), ('strict-transport-security', 'max-age=31536000; includeSubDomains; preload'), ('x-content-type-options', 'nosniff'), ('set-cookie', '_cfuvid=4_PvBORQbRKS8He.BAPs1uCQ_1M1psZ8TTx1IzMAqgM-1765944029139-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), ('server', 'cloudflare'), ('cf-ray', '9af383787d9adda1-HKG'), ('content-encoding', 'gzip'), ('alt-svc', 'h3=":443"; ma=86400')]) 2025-12-17 04:00:29 [openai._base_client] DEBUG: request_id: req_6065e51984b34a73ba4f4756835482cd 2025-12-17 04:00:29 [vnexpress_timestamp] INFO: Min timestamp: 2025-12-17 10:44:00, Published timestamp: 2025-12-17 10:47:09 2025-12-17 04:00:29 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): tts-api:4444 2025-12-17 04:04:57 [urllib3.connectionpool] DEBUG: http://tts-api:4444 "POST /api/v2/text-to-speech HTTP/1.1" 200 411 2025-12-17 04:04:57 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vnexpress.net/nhan-vien-nha-hang-my-cuu-mang-khach-quen-4994779.html> {'audio_url': 'https://lake-api.actable.ai/tts-data/rcglpbyn-2025-12-17%2004%3A00%3A29.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=pmq7GsXVsXQZXqTM0hWE%2F20251217%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20251217T040452Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5cc47d50f5541c3c0e0d849ff8bc7bb8b5171cc5ff0042478610a1048186df45', 'author': 'Đức Trung', 'category': 'Thế giới', 'content': 'Trong gần 10 năm qua, ông Charlie Hicks, nhân viên kế toán nghỉ ' 'hưu và cựu binh không quân ở Pensacola, Florida, ngày nào cũng ' 'đến nhà hàng Shrimp Basket, gọi một bát súp gumbo cho bữa trưa và ' 'ngồi xem bóng chày trên TV. Bếp trưởng Donell Stallworth thường ' 'ngồi trò chuyện với ông Hicks khi công việc không quá bận rộn. Họ ' 'trao đổi về bóng chày cùng những chủ đề khác và bắt đầu thân ' 'nhau. Hồi đầu tháng 9, ông Hicks, 78 tuổi, không đến nhà hàng ăn ' 'trưa như thường lệ. Denise Galloway, quản lý nhà hàng, đã gọi ' 'điện cho Hicks và biết ông bị ốm. Galloway đã mang súp gumbo đến ' 'nhà ông, nhưng Hicks nhờ cô để bên ngoài cửa vì không muốn lây ' 'bệnh cho cô. Vài ngày trôi qua, ông Hicks vẫn không tới nhà hàng. ' 'Galloway gọi lại nhưng không ai nhấc máy, nên đã kể cho ' 'Stallworth những gì xảy ra. "Nghe chuyện, tôi cầm chìa khóa xe và ' 'lập tức rời đi", Stallworth nói. Hôm đó là ngày 11/9. Stallworth ' 'đến căn hộ của ông Hicks, gõ cửa hai lần nhưng không thấy ai trả ' 'lời. Đang định rời đi, anh nghe thấy một tiếng kêu cứu yếu ớt. ' 'Cánh cửa không khóa và khi mở ra, anh thấy ông Hicks nằm trên sàn ' 'nhà. Ông bị ngã, gãy hai xương sườn và mất nước nghiêm trọng. ' '"Ông ấy thậm chí không biết ngày giờ, không thể nói chuyện được ' 'vì mất nước", Stallworth kể lại. Anh đã lập tức gọi 911, cố gắng ' 'cho ông Hicks uống chút nước trong khi chờ xe cấp cứu. Ông Hicks ' 'phải nằm viện hai tháng, sau đó tập phục hồi chức năng. Những ' 'người bạn từ nhà hàng Shrimp Basket thường xuyên đến thăm và mang ' 'súp gumbo cho ông. "Tôi không biết chuyện gì sẽ xảy ra nếu ' 'Stallworth không xuất hiện", Hicks hôm 16/12 nói với truyền thông ' 'địa phương. Các nhân viên của Shrimp Basket mô tả ông Hicks giống ' 'như "ông nội nuôi" của nhà hàng. Khi biết chủ căn hộ nơi của ông ' 'Hicks thuê sắp tăng giá, họ đã thuê giúp ông một căn khác gần nhà ' 'hàng, thậm chí giúp sửa chữa, dọn dẹp cho đến khi ông được xuất ' 'viện. Ông Hicks chưa từng kết hôn và không có con. Chia sẻ về bản ' 'thân, ông nói mình là người "đơn độc" suốt cuộc đời, nhưng các ' 'nhân viên Shrimp Basket cho hay Hicks hiện là một phần của "gia ' 'đình". Khi ông xuất viện và chuyển đến căn hộ mới, họ mang súp ' 'gumbo đến vì cho rằng ông vẫn cần thời gian hồi phục. "Họ nói là ' 'đang ghi nợ, nhưng tôi vẫn chưa thấy hóa đơn", ông kể. Hồi đầu ' 'tuần, Jeff Brooks, chủ sở hữu Shrimp Basket, thông báo ông Hicks ' 'sẽ được ăn súp gumbo miễn phí suốt đời. Chuỗi nhà hàng cũng tặng ' 'súp gumbo miễn phí với bất kỳ đơn hàng nào trong thứ Hai, nhằm ' 'tri ân ông Hicks. Trả lời truyền thông, ông Hicks bối rối và cảm ' 'động trước sự quan tâm này. "Tôi đâu có tìm ra phương pháp chữa ' 'ung thư. Tôi chỉ ngã trong căn hộ của mình", ông bày tỏ. Các nhân ' 'viên nhà hàng hy vọng câu chuyện này sẽ truyền cảm hứng, khiến ' 'mọi người quan tâm đến nhau nhiều hơn. "Với chúng tôi, ai cũng ' 'quan trọng. Mỗi người bước qua cánh cửa đó, chúng tôi đều đối xử ' 'với họ như với ông Hicks", một quản lý nói.', 'description': 'Khi thấy người khách quen lớn tuổi không tới ăn như thường ' 'lệ, bếp trưởng Stallworth đến nhà kiểm tra và phát hiện ông ' 'trong tình trạng nguy kịch.', 'html_content': '
\n' '

Trong gần 10 năm qua, ông Charlie Hicks, ' 'nhân viên kế toán nghỉ hưu và cựu binh không quân ở ' 'Pensacola, Florida, ngày nào cũng đến nhà hàng Shrimp ' 'Basket, gọi một bát súp gumbo cho bữa trưa và ngồi xem bóng ' 'chày trên TV.

Bếp trưởng Donell ' 'Stallworth thường ngồi trò chuyện với ông Hicks khi công ' 'việc không quá bận rộn. Họ trao đổi về bóng chày cùng những ' 'chủ đề khác và bắt đầu thân nhau.

Hồi ' 'đầu tháng 9, ông Hicks, 78 tuổi, không đến nhà hàng ăn trưa ' 'như thường lệ. Denise Galloway, quản lý nhà hàng, đã gọi ' 'điện cho Hicks và biết ông bị ốm. Galloway đã mang súp gumbo ' 'đến nhà ông, nhưng Hicks nhờ cô để bên ngoài cửa vì không ' 'muốn lây bệnh cho cô.

Vài ngày trôi ' 'qua, ông Hicks vẫn không tới nhà hàng. Galloway gọi lại ' 'nhưng không ai nhấc máy, nên đã kể cho Stallworth những gì ' 'xảy ra.

"Nghe chuyện, tôi cầm chìa khóa ' 'xe và lập tức rời đi", Stallworth nói. Hôm đó là ngày ' '11/9.

\n' '
\n' '\n' '\n' '\n' '\n' '
\n' '\n' '\n' '\n' 'Ông Hicks bên cạnh '
                 'chiếc bánh nhà hàng tặng vào sinh nhật thứ 78 hồi tháng 5. '
                 'Ảnh: WP\n' '
\n' '
\n' '

Ông Hicks bên cạnh chiếc bánh nhà hàng tặng ' 'vào sinh nhật thứ 78 hồi tháng 5. Ảnh: WP

\n' '
\n' '

Stallworth đến căn hộ của ông ' 'Hicks, gõ cửa hai lần nhưng không thấy ai trả lời. Đang định ' 'rời đi, anh nghe thấy một tiếng kêu cứu yếu ớt. Cánh cửa ' 'không khóa và khi mở ra, anh thấy ông Hicks nằm trên sàn ' 'nhà. Ông bị ngã, gãy hai xương sườn và mất nước nghiêm ' 'trọng.

"Ông ấy thậm chí không biết ngày ' 'giờ, không thể nói chuyện được vì mất nước", Stallworth kể ' 'lại. Anh đã lập tức gọi 911, cố gắng cho ông Hicks uống chút ' 'nước trong khi chờ xe cấp cứu.

Ông ' 'Hicks phải nằm viện hai tháng, sau đó tập phục hồi chức ' 'năng. Những người bạn từ nhà hàng Shrimp Basket thường xuyên ' 'đến thăm và mang súp gumbo cho ông.

"Tôi không biết chuyện gì sẽ xảy ra nếu ' 'Stallworth không xuất hiện", Hicks hôm 16/12 nói với truyền ' 'thông địa phương.

Các nhân viên của ' 'Shrimp Basket mô tả ông Hicks giống như "ông nội nuôi" của ' 'nhà hàng. Khi biết chủ căn hộ nơi của ông Hicks thuê sắp ' 'tăng giá, họ đã thuê giúp ông một căn khác gần nhà hàng, ' 'thậm chí giúp sửa chữa, dọn dẹp cho đến khi ông được xuất ' 'viện.

\n' '
\n' '\n' '\n' '\n' '\n' '
\n' '\n' '\n' '\n' 'Bếp trưởng Donell '
                 'Stallworth bên cạnh ông Hicks tại bệnh viện. Ảnh: WP\n' '
\n' '
\n' '

Bếp trưởng Donell Stallworth bên cạnh ông ' 'Hicks tại bệnh viện. Ảnh: WP

\n' '
\n' '

Ông Hicks chưa từng kết hôn và ' 'không có con. Chia sẻ về bản thân, ông nói mình là người ' '"đơn độc" suốt cuộc đời, nhưng các nhân viên Shrimp Basket ' 'cho hay Hicks hiện là một phần của "gia đình".

Khi ông xuất viện và chuyển đến căn hộ mới, ' 'họ mang súp gumbo đến vì cho rằng ông vẫn cần thời gian hồi ' 'phục. "Họ nói là đang ghi nợ, nhưng tôi vẫn chưa thấy hóa ' 'đơn", ông kể.

Hồi đầu tuần, Jeff ' 'Brooks, chủ sở hữu Shrimp Basket, thông báo ông Hicks sẽ ' 'được ăn súp gumbo miễn phí suốt đời. Chuỗi nhà hàng cũng ' 'tặng súp gumbo miễn phí với bất kỳ đơn hàng nào trong thứ ' 'Hai, nhằm tri ân ông Hicks.

Trả lời ' 'truyền thông, ông Hicks bối rối và cảm động trước sự quan ' 'tâm này. "Tôi đâu có tìm ra phương pháp chữa ung thư. Tôi ' 'chỉ ngã trong căn hộ của mình", ông bày tỏ.

Các nhân viên nhà hàng hy vọng câu chuyện này ' 'sẽ truyền cảm hứng, khiến mọi người quan tâm đến nhau nhiều ' 'hơn. "Với chúng tôi, ai cũng quan trọng. Mỗi người bước qua ' 'cánh cửa đó, chúng tôi đều đối xử với họ như với ông Hicks", ' 'một quản lý nói.

Đức Trung (Theo ' 'Washington Post, AP)

\n' '\n' '\n' '\n' '\n' '
', 'md_content': '\n' 'Trong gần 10 năm qua, ông Charlie Hicks, nhân viên kế toán ' 'nghỉ hưu và cựu binh không quân ở Pensacola, Florida, ngày nào ' 'cũng đến nhà hàng Shrimp Basket, gọi một bát súp gumbo cho bữa ' 'trưa và ngồi xem bóng chày trên TV.\n' '\n' 'Bếp trưởng Donell Stallworth thường ngồi trò chuyện với ông ' 'Hicks khi công việc không quá bận rộn. Họ trao đổi về bóng ' 'chày cùng những chủ đề khác và bắt đầu thân nhau.\n' '\n' 'Hồi đầu tháng 9, ông Hicks, 78 tuổi, không đến nhà hàng ăn ' 'trưa như thường lệ. Denise Galloway, quản lý nhà hàng, đã gọi ' 'điện cho Hicks và biết ông bị ốm. Galloway đã mang súp gumbo ' 'đến nhà ông, nhưng Hicks nhờ cô để bên ngoài cửa vì không muốn ' 'lây bệnh cho cô.\n' '\n' 'Vài ngày trôi qua, ông Hicks vẫn không tới nhà hàng. Galloway ' 'gọi lại nhưng không ai nhấc máy, nên đã kể cho Stallworth ' 'những gì xảy ra.\n' '\n' '"Nghe chuyện, tôi cầm chìa khóa xe và lập tức rời đi", ' 'Stallworth nói. Hôm đó là ngày 11/9.\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '![Ông Hicks bên cạnh chiếc bánh nhà hàng tặng vào sinh nhật ' 'thứ 78 hồi tháng 5. Ảnh: ' 'WP](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)\n' '\n' '\n' 'Ông Hicks bên cạnh chiếc bánh nhà hàng tặng vào sinh nhật thứ ' '78 hồi tháng 5. Ảnh: *WP*\n' '\n' '\n' '\n' 'Stallworth đến căn hộ của ông Hicks, gõ cửa hai lần nhưng ' 'không thấy ai trả lời. Đang định rời đi, anh nghe thấy một ' 'tiếng kêu cứu yếu ớt. Cánh cửa không khóa và khi mở ra, anh ' 'thấy ông Hicks nằm trên sàn nhà. Ông bị ngã, gãy hai xương ' 'sườn và mất nước nghiêm trọng.\n' '\n' '"Ông ấy thậm chí không biết ngày giờ, không thể nói chuyện ' 'được vì mất nước", Stallworth kể lại. Anh đã lập tức gọi 911, ' 'cố gắng cho ông Hicks uống chút nước trong khi chờ xe cấp ' 'cứu.\n' '\n' 'Ông Hicks phải nằm viện hai tháng, sau đó tập phục hồi chức ' 'năng. Những người bạn từ nhà hàng Shrimp Basket thường xuyên ' 'đến thăm và mang súp gumbo cho ông.\n' '\n' '"Tôi không biết chuyện gì sẽ xảy ra nếu Stallworth không xuất ' 'hiện", Hicks hôm 16/12 nói với truyền thông địa phương.\n' '\n' 'Các nhân viên của Shrimp Basket mô tả ông Hicks giống như "ông ' 'nội nuôi" của nhà hàng. Khi biết chủ căn hộ nơi của ông Hicks ' 'thuê sắp tăng giá, họ đã thuê giúp ông một căn khác gần nhà ' 'hàng, thậm chí giúp sửa chữa, dọn dẹp cho đến khi ông được ' 'xuất viện.\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '![Bếp trưởng Donell Stallworth bên cạnh ông Hicks tại bệnh ' 'viện. Ảnh: ' 'WP](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)\n' '\n' '\n' 'Bếp trưởng Donell Stallworth bên cạnh ông Hicks tại bệnh viện. ' 'Ảnh: *WP*\n' '\n' '\n' '\n' 'Ông Hicks chưa từng kết hôn và không có con. Chia sẻ về bản ' 'thân, ông nói mình là người "đơn độc" suốt cuộc đời, nhưng các ' 'nhân viên Shrimp Basket cho hay Hicks hiện là một phần của ' '"gia đình".\n' '\n' 'Khi ông xuất viện và chuyển đến căn hộ mới, họ mang súp gumbo ' 'đến vì cho rằng ông vẫn cần thời gian hồi phục. "Họ nói là ' 'đang ghi nợ, nhưng tôi vẫn chưa thấy hóa đơn", ông kể.\n' '\n' 'Hồi đầu tuần, Jeff Brooks, chủ sở hữu Shrimp Basket, thông báo ' 'ông Hicks sẽ được ăn súp gumbo miễn phí suốt đời. Chuỗi nhà ' 'hàng cũng tặng súp gumbo miễn phí với bất kỳ đơn hàng nào ' 'trong thứ Hai, nhằm tri ân ông Hicks.\n' '\n' 'Trả lời truyền thông, ông Hicks bối rối và cảm động trước sự ' 'quan tâm này. "Tôi đâu có tìm ra phương pháp chữa ung thư. Tôi ' 'chỉ ngã trong căn hộ của mình", ông bày tỏ.\n' '\n' 'Các nhân viên nhà hàng hy vọng câu chuyện này sẽ truyền cảm ' 'hứng, khiến mọi người quan tâm đến nhau nhiều hơn. "Với chúng ' 'tôi, ai cũng quan trọng. Mỗi người bước qua cánh cửa đó, chúng ' 'tôi đều đối xử với họ như với ông Hicks", một quản lý nói.\n' '\n' '**Đức Trung** (Theo *Washington Post, AP*)\n' '\n' '\n' '\n' '\n' '\n' '\n', 'published_date': datetime.date(2025, 12, 17), 'published_timestamp': datetime.datetime(2025, 12, 17, 10, 47, 9), 'source': 'VnExpress', 'tags': ['Charlie Hicks', 'Shrimp Basket', 'gumbo', 'tình bạn', 'sự quan tâm', 'cứu hộ', 'bệnh tật', 'phục hồi chức năng', 'gia đình', 'cộng đồng', 'nhân viên nhà hàng', 'Pensacola', 'cựu binh không quân', 'sự cô đơn', 'lòng tốt', 'truyền cảm hứng', 'miễn phí', 'hỗ trợ', 'chăm sóc sức khỏe', 'mối quan hệ xã hội'], 'title': 'Nhân viên nhà hàng Mỹ cứu mạng khách quen', 'url': 'https://vnexpress.net/nhan-vien-nha-hang-my-cuu-mang-khach-quen-4994779.html', 'voice': 'HN-Nam-1-BL'} 2025-12-17 04:04:57 [scrapy.extensions.logstats] INFO: Crawled 4 pages (at 4 pages/min), scraped 1 items (at 1 items/min) 2025-12-17 04:04:57 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:04:57 [vnexpress_timestamp] INFO: 2025-12-17 10:06:47 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:00 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:00 [vnexpress_timestamp] INFO: 2025-12-17 10:07:48 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:02 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:02 [vnexpress_timestamp] INFO: 2025-12-17 10:10:04 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:05 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:05 [vnexpress_timestamp] INFO: 2025-12-17 08:07:28 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:08 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:08 [vnexpress_timestamp] INFO: 2025-12-17 08:16:41 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:11 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:11 [vnexpress_timestamp] INFO: 2025-12-17 08:20:51 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:13 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:14 [vnexpress_timestamp] INFO: 2025-12-17 08:21:47 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:15 [scrapy.extensions.logstats] INFO: Crawled 11 pages (at 7 pages/min), scraped 1 items (at 0 items/min) 2025-12-17 04:05:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:16 [vnexpress_timestamp] INFO: 2025-12-17 08:46:49 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:19 [vnexpress_timestamp] INFO: 2025-12-17 09:00:00 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:21 [vnexpress_timestamp] INFO: 2025-12-17 09:00:00 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:23 [vnexpress_timestamp] INFO: 2025-12-17 09:00:00 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:26 [vnexpress_timestamp] INFO: 2025-12-17 09:00:00 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:29 [vnexpress_timestamp] INFO: 2025-12-17 09:05:57 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:32 [vnexpress_timestamp] INFO: 2025-12-17 09:20:18 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:35 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:35 [vnexpress_timestamp] INFO: 2025-12-17 09:30:00 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:37 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:38 [vnexpress_timestamp] INFO: 2025-12-17 09:39:14 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:40 [vnexpress_timestamp] INFO: 2025-12-17 10:00:00 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:43 [vnexpress_timestamp] INFO: 2025-12-17 10:00:00 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:45 [vnexpress_timestamp] INFO: 2025-12-17 10:05:24 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:48 [vnexpress_timestamp] INFO: 2025-12-17 10:12:32 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:50 [vnexpress_timestamp] INFO: 2025-12-17 10:15:00 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:53 [vnexpress_timestamp] INFO: 2025-12-17 10:15:00 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:56 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:56 [vnexpress_timestamp] INFO: 2025-12-17 10:16:31 smaller than 2025-12-17 10:44:00 2025-12-17 04:05:58 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:05:59 [vnexpress_timestamp] INFO: 2025-12-17 10:17:24 smaller than 2025-12-17 10:44:00 2025-12-17 04:06:01 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:06:01 [vnexpress_timestamp] INFO: 2025-12-17 10:19:24 smaller than 2025-12-17 10:44:00 2025-12-17 04:06:03 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:06:04 [vnexpress_timestamp] INFO: 2025-12-17 10:25:02 smaller than 2025-12-17 10:44:00 2025-12-17 04:06:06 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:06:06 [vnexpress_timestamp] INFO: 2025-12-17 10:30:00 smaller than 2025-12-17 10:44:00 2025-12-17 04:06:09 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:06:09 [vnexpress_timestamp] INFO: 2025-12-17 10:38:29 smaller than 2025-12-17 10:44:00 2025-12-17 04:06:11 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://vnexpress.net/tin-tuc-24h) 2025-12-17 04:06:12 [vnexpress_timestamp] INFO: 2025-12-17 10:38:49 smaller than 2025-12-17 10:44:00 2025-12-17 04:06:12 [scrapy.core.engine] INFO: Closing spider (finished) 2025-12-17 04:06:12 [boto3.s3.transfer] DEBUG: Opting out of CRT Transfer Manager. Preferred client: auto, CRT available: False, Instance Optimized: False. 2025-12-17 04:06:12 [boto3.s3.transfer] DEBUG: Using default client. pid: 189173, thread: 140102278769464 2025-12-17 04:06:12 [s3transfer.utils] DEBUG: Acquiring 0 2025-12-17 04:06:12 [s3transfer.tasks] DEBUG: UploadSubmissionTask(transfer_id=0, {'transfer_future': }) about to wait for the following futures [] 2025-12-17 04:06:12 [s3transfer.tasks] DEBUG: UploadSubmissionTask(transfer_id=0, {'transfer_future': }) done waiting for dependent futures 2025-12-17 04:06:12 [s3transfer.tasks] DEBUG: Executing task UploadSubmissionTask(transfer_id=0, {'transfer_future': }) with kwargs {'client': , 'config': , 'osutil': , 'request_executor': , 'transfer_future': } 2025-12-17 04:06:12 [s3transfer.futures] DEBUG: Submitting task PutObjectTask(transfer_id=0, {'bucket': 'dagster-output-data', 'key': 'vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl', 'extra_args': {}}) to executor for transfer request: 0. 2025-12-17 04:06:12 [s3transfer.utils] DEBUG: Acquiring 0 2025-12-17 04:06:12 [s3transfer.tasks] DEBUG: PutObjectTask(transfer_id=0, {'bucket': 'dagster-output-data', 'key': 'vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl', 'extra_args': {}}) about to wait for the following futures [] 2025-12-17 04:06:12 [s3transfer.utils] DEBUG: Releasing acquire 0/None 2025-12-17 04:06:12 [s3transfer.tasks] DEBUG: PutObjectTask(transfer_id=0, {'bucket': 'dagster-output-data', 'key': 'vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl', 'extra_args': {}}) done waiting for dependent futures 2025-12-17 04:06:12 [s3transfer.tasks] DEBUG: Executing task PutObjectTask(transfer_id=0, {'bucket': 'dagster-output-data', 'key': 'vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl', 'extra_args': {}}) with kwargs {'client': , 'fileobj': , 'bucket': 'dagster-output-data', 'key': 'vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl', 'extra_args': {}} 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler > 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler > 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-endpoint-resolution.s3: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-endpoint-resolution.s3: calling handler > 2025-12-17 04:06:12 [botocore.regions] DEBUG: Calling endpoint provider with parameters: {'Bucket': 'dagster-output-data', 'Region': 'us-east-1', 'UseFIPS': False, 'UseDualStack': False, 'Endpoint': 'https://lake-api.actable.ai/', 'ForcePathStyle': True, 'Accelerate': False, 'UseGlobalEndpoint': True, 'Key': 'vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl', 'DisableMultiRegionAccessPoints': False, 'UseArnRegion': True} 2025-12-17 04:06:12 [botocore.regions] DEBUG: Endpoint provider result: https://lake-api.actable.ai/dagster-output-data 2025-12-17 04:06:12 [botocore.regions] DEBUG: Selecting from endpoint provider's list of auth schemes: "sigv4". User selected auth scheme is: "None" 2025-12-17 04:06:12 [botocore.regions] DEBUG: Selected auth type "v4" as "v4" with signing context params: {'region': 'us-east-1', 'signing_name': 's3', 'disableDoubleEncoding': True} 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.handlers] DEBUG: Adding expect 100 continue header to request. 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler > 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.endpoint] DEBUG: Making request for OperationModel(name=PutObject) with params: {'url_path': '/vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl', 'query_string': {}, 'method': 'PUT', 'headers': {'User-Agent': 'Boto3/1.34.57 md/Botocore#1.34.162 ua/2.0 os/linux#5.15.0-157-generic md/arch#x86_64 lang/python#3.11.13 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.34.162', 'Content-MD5': 'S+B531PIbY0g7w3F++kd2w==', 'Expect': '100-continue'}, 'body': , 'auth_path': '/dagster-output-data/vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl', 'url': 'https://lake-api.actable.ai/dagster-output-data/vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl', 'context': {'client_region': 'us-east-1', 'client_config': , 'has_streaming_input': True, 'auth_type': 'v4', 's3_redirect': {'redirected': False, 'bucket': 'dagster-output-data', 'params': {'Bucket': 'dagster-output-data', 'Key': 'vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl', 'Body': }}, 'input_params': {'Bucket': 'dagster-output-data', 'Key': 'vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl'}, 'signing': {'region': 'us-east-1', 'signing_name': 's3', 'disableDoubleEncoding': True}, 'endpoint_properties': {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'us-east-1'}]}}} 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler > 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event choose-signer.s3.PutObject: calling handler > 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event choose-signer.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-sign.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event before-sign.s3.PutObject: calling handler > 2025-12-17 04:06:12 [botocore.auth] DEBUG: Calculating signature using v4 auth. 2025-12-17 04:06:12 [botocore.auth] DEBUG: CanonicalRequest: PUT /dagster-output-data/vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl content-md5:S+B531PIbY0g7w3F++kd2w== host:lake-api.actable.ai x-amz-content-sha256:UNSIGNED-PAYLOAD x-amz-date:20251217T040612Z content-md5;host;x-amz-content-sha256;x-amz-date UNSIGNED-PAYLOAD 2025-12-17 04:06:12 [botocore.auth] DEBUG: StringToSign: AWS4-HMAC-SHA256 20251217T040612Z 20251217/us-east-1/s3/aws4_request 6125ee29679c568ad087b312dc2f5ede5cc062aaccd399d9fb6da2b98c32d294 2025-12-17 04:06:12 [botocore.auth] DEBUG: Signature: 1d883a2cbd7cfbcd4b69c7472a54944bfac03deb61f05075e9430f72162aa705 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.endpoint] DEBUG: Sending http request: 2025-12-17 04:06:12 [botocore.httpsession] DEBUG: Certificate path: /usr/local/lib/python3.11/site-packages/certifi/cacert.pem 2025-12-17 04:06:12 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): lake-api.actable.ai:443 2025-12-17 04:06:12 [botocore.awsrequest] DEBUG: Waiting for 100 Continue response. 2025-12-17 04:06:12 [botocore.awsrequest] DEBUG: 100 Continue response seen, now sending request body. 2025-12-17 04:06:12 [urllib3.connectionpool] DEBUG: https://lake-api.actable.ai:443 "PUT /dagster-output-data/vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl HTTP/1.1" 200 0 2025-12-17 04:06:12 [botocore.parsers] DEBUG: Response headers: {'Server': 'nginx/1.24.0 (Ubuntu)', 'Date': 'Wed, 17 Dec 2025 04:06:12 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Accept-Ranges': 'bytes', 'ETag': '"4be079df53c86d8d20ef0dc5fbe91ddb"', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains', 'Vary': 'Origin, Accept-Encoding', 'X-Amz-Bucket-Region': 'us-east-1', 'X-Amz-Id-2': 'dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8', 'X-Amz-Request-Id': '1881E50CD15E30B0', 'X-Content-Type-Options': 'nosniff', 'X-Ratelimit-Limit': '25637', 'X-Ratelimit-Remaining': '25637', 'X-Xss-Protection': '1; mode=block'} 2025-12-17 04:06:12 [botocore.parsers] DEBUG: Response body: b'' 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event needs-retry.s3.PutObject: calling handler 2025-12-17 04:06:12 [botocore.retryhandler] DEBUG: No retry needed. 2025-12-17 04:06:12 [botocore.hooks] DEBUG: Event needs-retry.s3.PutObject: calling handler > 2025-12-17 04:06:12 [s3transfer.utils] DEBUG: Releasing acquire 0/None 2025-12-17 04:06:12 [scrapy.extensions.feedexport] INFO: Stored jsonlines feed (1 items) in: s3://dagster-output-data/vnexpress_timestamp/vnexpress_timestamp_dc1c1a8cdafc11f099e2d6783c969646_scheduled_2025-12-17.jl 2025-12-17 04:06:12 [scrapy.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 11040, 'downloader/request_count': 33, 'downloader/request_method_count/GET': 33, 'downloader/response_bytes': 1826949, 'downloader/response_count': 33, 'downloader/response_status_count/200': 33, 'elapsed_time_seconds': 356.351376, 'feedexport/success_count/S3FeedStorage': 1, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2025, 12, 17, 4, 6, 12, 41498, tzinfo=datetime.timezone.utc), 'httpcompression/response_bytes': 8491347, 'httpcompression/response_count': 33, 'item_scraped_count': 1, 'log_count/DEBUG': 164, 'log_count/INFO': 45, 'memusage/max': 139333632, 'memusage/startup': 124465152, 'request_depth_max': 2, 'response_received_count': 33, 'robotstxt/request_count': 1, 'robotstxt/response_count': 1, 'robotstxt/response_status_count/200': 1, 'scheduler/dequeued': 32, 'scheduler/dequeued/memory': 32, 'scheduler/enqueued': 32, 'scheduler/enqueued/memory': 32, 'start_time': datetime.datetime(2025, 12, 17, 4, 0, 15, 690122, tzinfo=datetime.timezone.utc)} 2025-12-17 04:06:12 [scrapy.core.engine] INFO: Spider closed (finished) 2025-12-17 04:06:12 [httpcore.connection] DEBUG: close.started 2025-12-17 04:06:12 [httpcore.connection] DEBUG: close.complete