Я столкнулся с проблемой податливости, когда пытался сканировать http: //www.brand-in-trend .ru. Как вы видите ниже, я использую Scrapy и определил Basespider. Первый парсер работает отлично и возвращает все бренды, найденные на start_url.
Теперь, когда я хочу передать запрос обратного вызова парсеру категорий, я не получаю ни ответа, ни ошибки. Паук просто уходит.
Паук:
class brandintrend(BaseSpider):
name = "brandintrend"
allowed_domains = [ 'trend-in-brand.ru' ]
start_urls = [ 'http://brand-in-trend.ru/brands/' ]
def parse(self, response):
hxs = HtmlXPathSelector(response)
brands = hxs.select('//div[@class="brandcol"]/ul/li/a/@href').extract()
for brand in brands:
brand = "http://www.brand-in-trend.ru" + brand
print brand
# request = Request(brand, callback=self.categories)
yield Request(brand, callback=self.categories)
def categories(self, response):
print "Hello World"
hxs = HtmlXPathSelector(response)
print response.url
Я уже пробовал следующее, чтобы решить эту проблему:
- Я проверил сгенерированные URL-адреса брендов (например, http: //www.brand-in- trend.ru/brands/parker/) в Chrome (Javasript выключен), и они работали нормально.
- Я поместил все сгенерированные URL-адреса брендов в список start_url и попытался передать их непосредственно в парсер категорий.
- Я просмотрел этот пост, который, к сожалению, не решил мою проблему: scrapy не удалось отправить запрос () обратный вызов
Если бы кто-нибудь столкнулся с подобной проблемой, я был бы очень рад ее решению или посоветовал бы
Заранее спасибо
J
1 ответ
Это потому, что вы установили:
allowed_domains = [ 'trend-in-brand.ru' ]
Но вы сканируете URL из другого домена:
start_urls = [ 'http://brand-in-trend.ru/brands/' ]
См. trend-in-brand
против brand-in-trend
.
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.