【发布时间】:2019-08-12 14:53:15
【问题描述】:
我有一个简单的机器人,它使用 cookie 登录网站并检查商品的价格,如果该价格符合我设置的价格,它就会购买该商品。
我正在寻找提高此机器人速度的方法。我真的不知道在这种情况下多处理是否会让这个机器人更快。
我也在寻找提高效率的方法。
session = requests.session()
session.cookies["cookie"] = ""
log_in = session.get("https://www.example.com")
if log_in.status_code == 200:
print("Logged In")
else:
raise ValueError("Invalid Cookie")
crsf_token = ""
def token():
global crsf_token
while True:
crsf_token = re.search(r"<script>XsrfToken.setToken\('(.*?)'\);</script>", session.get('https://www.example.com').text).group(1)
time.sleep(5)
def _cthread():
while True:
try:
req = session.get(f"https://www.example.com/productID")
if req.status_code == 429:
time.sleep(5)
continue
for i in req.json()["data"]["Sellers"]:
if i["Price"] <= 300:
session.post(f'https://www.example.com&expectedPrice={i["Price"]}&expectedSellerID={i["SellerId"]}&userAssetID={i["UserAssetId"]}', headers={"X-CSRF-TOKEN": crsf_token})
except requests.urllib3.exceptions.ConnectTimeoutError as E:
pass
while True:
threading.Thread(target=_cthread).start()
threading.Thread(target=token).start()
我在这方面没有取得太大的成功,但它现在确实有效。
【问题讨论】:
-
我相信您只执行一项任务。你认为多线程有什么好处?
-
@BlueRineS:可能有助于为响应每个
GET而提交的大量POST请求。
标签: python python-3.x multithreading multiprocessing