Tôi cố gắng để sử dụng Python để đăng nhập vào một trang web và thu thập thông tin từ một số trang web và tôi nhận được lỗi sau:Làm thế nào để tránh Lỗi HTTP 429 (Quá nhiều yêu cầu) python
Traceback (most recent call last): File "extract_test.py", line 43, in <module> response=br.open(v) File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 203, in open return self._mech_open(url, data, timeout=timeout) File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 255, in _mech_open raise response mechanize._response.httperror_seek_wrapper: HTTP Error 429: Unknown Response Code
tôi đã sử dụng time.sleep()
và nó hoạt động, nhưng có vẻ không thông minh và không đáng tin cậy, có cách nào khác để né tránh lỗi này không?
Dưới đây là mã của tôi:
import mechanize
import cookielib
import re
first=("example.com/page1")
second=("example.com/page2")
third=("example.com/page3")
fourth=("example.com/page4")
## I have seven URL's I want to open
urls_list=[first,second,third,fourth]
br = mechanize.Browser()
# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
# Browser options
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
# Log in credentials
br.open("example.com")
br.select_form(nr=0)
br["username"] = "username"
br["password"] = "password"
br.submit()
for url in urls_list:
br.open(url)
print re.findall("Some String")
Không có cách nào xung quanh nó, đây là một thực thi trên Server- bên theo dõi bao nhiêu yêu cầu/đơn vị thời gian bạn thực hiện. Nếu bạn vượt quá đơn vị này, bạn sẽ tạm thời bị chặn. Một số máy chủ gửi thông tin này trong tiêu đề, nhưng những dịp đó rất hiếm. Kiểm tra tiêu đề đã nhận được từ máy chủ, sử dụng thông tin có sẵn .. Nếu không, hãy kiểm tra tốc độ bạn có thể búa mà không bị bắt và sử dụng 'ngủ '. – Torxed
http://stackoverflow.com/questions/15648272/how-do-you-view-the-request-headers-that-mechanize-is-using – Torxed