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?
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
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
và __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.