Паралельнасць Scrapy праз проксі для некалькіх даменаў
Выкарыстоўвайце глабальны ліміт паралельнасці загрузчыка, калі некалькі мэтавых даменаў спажываюць адну квоту проксі, а затым улічвайце іншых краўлераў з тым самым уліковым запісам.
Калі кожны пункт прызначэння выкарыстоўвае адзін уліковы запіс проксі, ліміт адначасовых запытаў гэтага запісу можа быць выдаткаваны на ўсе гэтыя пункты. Ліміт на дамен сам па сабе не выяўляе гэты супольны бюджэт.
Для гіпатэтычнага запісу, які дазваляе не больш за 20 адначасовых запытаў, пакіньце пэўны запас і ўсталюйце глабальны ліміт загрузчыка краўлера:
CONCURRENT_REQUESTS = 16
Гэта ілюстрацыйнае размеркаванне, а не рэкамендаванае значэнне для кожнага правайдэра. Scrapy вызначае CONCURRENT_REQUESTS як максімальную колькасць адначасовых запытаў загрузчыка. Кіраванне па даменах можа дадаткова знізіць паралельнасць; яно не замяняе глабальны верхні ліміт.
Уключыце ў разлік іншых краўлераў. Два незалежныя краўлеры, кожнаму з якіх дазволена 16 запытаў, могуць разам перавысіць супольны ліміт у 20. Падзяліце бюджэт свядома або ўвядзіце супольны ліміт там, дзе гэтыя кліенты сыходзяцца.
Таксама вызначце, што менавіта лічыць правайдэр. HTTP-запыты, адкрытыя TCP-злучэнні, актыўныя тунэлі і запыты ў секунду — гэта розныя велічыні. Пастаянныя злучэнні і мультыплексіраванне могуць развесці іх колькасці. Такім чынам, налада паралельнасці запытаў не з'яўляецца поўным абмежавальнікам злучэнняў ці хуткасці.
Трымайце тэмп мэтавага сайта як асобнае абмежаванне. Меншая паралельнасць або затрымка загрузкі можа заставацца мэтазгоднай для асобнага пункта нават тады, калі ўліковы запіс проксі мае нявыкарыстаную магутнасць.