Request trả về status_code 503

Khi dùng request tới thì trả về status code là 503

r = requests.get('http://www.anime47.com")
r.status_code #503

Khi vào bằng chrome vẫn bình thường
Cho em hỏi tại sao vậy?

Có thể bị chặn bằng user agent. Bạn copy user agent của Chrome rồi gửi lên xem sao.
Thử dùng useragent này xem sao
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

3 Likes

Rốt cuộc là ' hay "?

Chắc là gõ lỗi thôi. Nếu k thì k đến được đoạn 503 rồi. Trang này khá là quái đấy, kiểm tra bằng session match với cookies trước khi cho vào trang. Session mới tinh lúc nào cũng bị response 503.

headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
cookies = {'cf_clearance': '0515fde65fa99278da4557c38cca404148eda572-1557635012-2592000-150',
'__cfduid': 'd0a1a0ec88e3ca196d923d70e905893d61557634999'}
r = requests.get('https://anime47.com/', headers=headers, cookies=cookies)
r.status_code  # 200
r.content  # content thực sự của trang web 

Bạn cần phải challenge để lấy được 2 giá trị cookies cf_clearance__cfduid nếu muốn làm tự động. Lưu ý là lúc thực hiện challenge thì phải dùng cùng session nếu k thì sẽ k thành công.
cookie __cfduid có thời gian sống dài nên k sao. Nhưng cookie cf_clearance có thời gian sống 1 tháng. Nếu k quá quan trọng thì bạn có thể copy từ trình duyệt ra mà dùng hoặc dùng cái mình mới gửi lên cũng được. Mình k rõ có bị áp rate limit không nên bạn thử test xem sao.
Lưu ý: nếu lấy từ trình duyệt thì nhớ copy cả giá trị user-agent của trình duyệt đó vì cookies có vẻ được compute theo user-agent luôn.

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?