Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
USER_AGENTS_LIST = open(os.path.join(ROOT, 'user_agents.txt'), 'r').readlines()
PROXY_LIST = open(os.path.join(ROOT, 'proxy_list.txt'), 'r').readlines()
PROXY_USR_PWD_ENCODED = base64.b64encode('user:pass').strip()
class RandomUserAgentMiddleware(object):
def process_request(self, request, spider):
request.headers['User-Agent'] = random.choice(USER_AGENTS_LIST)
class RandomProxyMiddleware(object):
def process_request(self, request, spider):
request.meta['proxy'] = "http://%s" % random.choice(PROXY_LIST)
request.headers['Proxy-Authorization'] = 'Basic ' + \
PROXY_USR_PWD_ENCODED
class RemoveRefererMiddleware(object):
def process_request(self, request, spider):
if 'Referer' in request.headers:
del request.headers['Referer'] # or = 'http://google.com'
class HttpProxyMiddleware(object):
def process_request(self, request, spider):
request.meta['proxy'] = self._get_new_proxy()
def _get_new_proxy(self):
#... round-robin there ...
return 'http://{0}:{1}/'.format(proxy['ip'], proxy['port'])
Для того, чтобы сравнить, нужно для начала определиться по каким критериям сравнивать.
И правильно говорить о сравнении Grab:Spider и Scrapy.
Ибо Grab это нечто другое — это API для синхронных сетевых запросов и обработки полученных ответов.Вот главная страница grablib.org/ говорит, что Grab — фреймворк для парсинга сайтов. Это тоже, можно сказать, обработка полученных ответов.
Scrapy is a fast high-level screen scraping and web crawling framework, used to crawl websites and extract structured data from their pages.На первый взгляд — то же самое.
Использование Grab:Spider для парсинга сайтов