Nhờ giải quyết vấn đề Tiếng Việt trong Scrapy của Python khi crawl dữ liệu
Sau 1 ngày được các bác chỉ giáo và vật lộn với mớ code của em tại topic https://daynhauhoc.com/t/hoi-ve-van-de-xu-ly-tieng-viet-voi-python/52849/19 thì nay em đã hiểu vấn đề của em nằm ở đâu và em xin lập topic khác để nhờ các bác giải đáp đúng trọng tâm hơn tránh bị lan man lạc đề ạ
Em sử dụng Scrapy crawl dữ liệu về và input vào databse. Nhưng vấn đề là khi data đi qua hệ thống của Scrapy thì bị lỗi dấu Tiếng Việt.
Ban đầu em tưởng là do dữ liệu crawl về như thế. Nhưng sau khi em gán dữ liệu trực tiếp vào thì vẫn bị lỗi mất tiếng việt. Cụ thể:
Em gán item[‘name’] = 'Việt Nam’
Thì sau quá trình xử lý của Scrapy…
kết quả in ra màn hình là ‘name’: ‘Vixe1xbbx87t Nam’,
kết quả được insert vào database là Việt Nam
Nhờ các bác giải thích dùm em và cho em phương án giải quyết vấn đề này với ạ
Hi Hà Temwin.
Nghe đồn phải cấu hình unicodee cho CSDL nưa @_@!
database của em là utf8 unicode.
Nhưng việc in ra màn hình thì liệu quan gì đến database đâu mà nó vẫn bị lỗi kìa.
Em nghĩ vấn đề này là do cấu hình gì đấy trong Scrapy mà mình k biết.
Bạn dùng Python mấy? Có dùng Pipeline để lưu vào db ko? Có dùng ORM ko? Đã thử encode utf-8 cho string trước khi lưu vào db chưa?
Mình dùng scrapy chưa bao giờ bị lỗi unicode.
Em dùng python 2.7.13
nếu bác đã có kinh nghiệp Scrapy bác có thể cho em xin contact để tiện trao đổi được không?
Bác có thể teamview xem giúp em ví dụ của em được không? Vì scrapy nó nhiều file connect với nhau nên đưa lên đây hỏi thì mọi người rất khó hình dung
khi tạo connection có khai báo
charset='utf8'
chưa ~.~dùng database gì? MySQL? sqlite? Dùng Python 2 hay Python 3??
Bạn học cách đặt câu hỏi cho đúng thì tự sẽ có câu trả lời, không liên quan đến project structure của Scrapy.
hoặc
hoặc
Source code thì hầu hết mọi người lưu kiểu utf8 cả, nên cứ decode bằng utf8 để ra chuỗi unicode
Tham khảo thêm cái này:
http://python.forumotion.net/t3-topic