我有一个很难解决的问题: 我有一个Instagram用户列表,我需要从每个帐户中提取“关注”列表。 为了简化请求,(使用Python)我使用了一个名为“ igramscraper”的模块。 我以这种方式构造脚本: 我创建了两个函数(一个用于提取关注者,另一个用于将其放入数据库) 我创建了一个循环访问用户名的for循环,并为循环中的每个用户调用了两个函数。 我把time.sleep时间放在用户的迭代之中。 在提取跟踪者的代码中,我首先需要检查该帐户是否仍然存在,然后需要发出请求以获取帐户是否为私有帐户,然后,如果account-is_private == False,则提取相关的跟踪者。 / p>
正如我所说,我在用户循环中睡眠了大约2分钟,即在帐户私有请求和帐户跟随请求之间以及最后一次尝试/除外之间的time.sleep,如果遇到429错误,请求太多,大约需要2个小时的时间。
问题在于,即使我等待2个小时,Instagram仍允许我执行前100/150个请求,然后每次尝试执行时都会拒绝我的请求。
有什么方法或建议可以避免此问题?代码如下:
import cv2
import sys
mouthCascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_smile.xml')
faceCascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
eyeCascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')
video_capture = cv2.VideoCapture(0)
while True:
# Capture frame-by-frame
ret, frame = video_capture.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
mouth = mouthCascade.detectMultiScale(gray, 1.3, 5)
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30)
)
# Draw a rectangle around the faces
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
# Draw a rectangle around the faces
roi_gray_mouth = gray[y+(int(h/2)):y+h, x:x+w]
roi_color_mouth = frame[y+(int(h/2)):y+h, x:x+w]
roi_gray_eye = gray[y-(int(h/2)):y+h, x:x+w]
roi_color_eye = frame[y-(int(h/2)):y+h, x:x+w]
mouth = mouthCascade.detectMultiScale(roi_gray_mouth)
eyes = eyeCascade.detectMultiScale(roi_gray_eye)
for (ex,ey,ew,eh) in mouth:
cv2.rectangle(roi_color_mouth, (ex, ey), (ex+ew, ey+eh), (0, 255, 0), 2)
for (eex,eey,eew,eeh) in eyes:
d = int(eew / 2)
cv2.circle(roi_color_eye, (int(eex + eew / 4) + int(d / 2), int(eey + eeh / 4) + int(d / 2)), int(d) ,(0,0,255),2)
# Display the resulting frame
cv2.imshow('Video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything is done, release the capture
video_capture.release()
cv2.destroyAllWindows()