Scrapy-ի պրոքսի կարգավորումների բեռնումը CrawlerProcess սկրիպտում
Փոխանցե՛ք get_project_settings()-ը CrawlerProcess-ին, երբ ինքնուրույն գործարկիչը պետք է օգտագործի նույն ներբեռնման միջնորդ ծրագիրը, ինչ scrapy crawl-ը։
Սարդը կարող է օգտագործել սպասվող պրոքսին scrapy crawl-ի ներքո և ուղիղ անցնել, երբ այն գործարկվում է Python սկրիպտով։ Ստուգե՛ք, թե ինչպես է այդ սկրիպտը կառուցում իր կարգավորումները, նախքան պրոքսի սերվերը փոխելը։
Գոյություն ունեցող Scrapy նախագծի և դրա գրանցված սարդի համար՝
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
settings = get_project_settings()
process = CrawlerProcess(settings=settings)
process.crawl('catalog')
process.start()
Փոխարինե՛ք catalog-ը նախագծի սարդի անունով։ Նախագիծը պետք է գտնելի լինի իր scrapy.cfg-ով կամ ներմուծելի կարգավորումների մոդուլին ուղղված ճիշտ դրված SCRAPY_SETTINGS_MODULE-ով։
Միայն CrawlerProcess()-ի ստեղծումը չի ներմուծում նախագծի կարգավորումների ֆայլը միայն այն պատճառով, որ սկրիպտը նաև ներմուծում է սարդի դաս։ Հետևաբար DOWNLOADER_MIDDLEWARES-ով միացված հատուկ միջնորդ ծրագիրը կարող է բացակայել այդ աշխատանքից։
Կարգավորումների բեռնումը տալիս է կազմաձևված բաղադրիչները. այն պրոքսի հասցե չի հորինում։ Scrapy-ի HTTP պրոքսի միջնորդ ծրագիրը դեռ պետք է իր սովորական միջավայրի պրոքսին կամ բացահայտ request.meta['proxy'] արժեք։ Ստուգե՛ք, որ HTTPPROXY_ENABLED-ը չի անջատել այն։ Թույլատրված հանրային էջերի սկանավորման համար HTTP պրոքսիների ցանկը առաջարկում է թեկնածուներ այդ մետատվյալներով կամ միջավայրով տրվող HTTP պրոքսի արժեքի համար։
Համեմատե՛ք գործարկիչի բեռնված կարգավորումները և ակտիվ միջնորդ ծրագիրը հրամանի տողից աշխատանքի հետ։ Եթե դրանք համընկնում են, շարունակե՛ք ընտրված հարցման պրոքսի մետատվյալներով և փաստացի փոխադրման սխալով։