Я хочу извлечь названия организаций и основные сведения о них из this Веб-сайт. Я использую scrapy для извлечения информации. Я пробовал оболочку scrapy для извлечения первого имени организации ТЕНСЕНТ ХОЛДИНГ и написал команду scrapy в оболочке scrapy как
response.css('div.flex-no-grow.cb-overflow-ellipsis.identifier-label::text').extract_first()
и эта команда ничего не возвращает. Я новичок в веб-скраппинге. Может ли кто-нибудь помочь мне в написании команды для нее или исправить то, где я ошибаюсь?
Спасибо за ответ. Я не получаю ответа об ошибке в оболочке Scrapy, когда я пишу свою команду, она просто ничего не возвращает ни ответа об ошибке, ни какого-либо результата. Как мы можем обойти эту меру безопасности с помощью scrapy?
запустите print(response.text) в оболочке scrapy и подтвердите, получаете ли вы фактические данные веб-страницы или веб-страницу с сообщением выше, которое я опубликовал.
Да, я получил такой же ответ, как вы указали в своем сообщении, как мы можем его обойти?






Я проверил ваш веб-сайт, все работает нормально, но есть проблема с оболочкой scrapy. Оболочка scrapy передает заголовки как Scrapy/{version}(+http://scrapy.org), и этот веб-сайт выдает ошибку 403, вы можете проверить это, распечатав объект ответа.
Что вам нужно сделать, так это изменить заголовки запроса, скажем, более подходящие заголовки headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0'}
и передайте его с запросом, тогда вы получите ответ.
Чтобы попробовать это в оболочке, сделайте следующее:
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0'}
url = 'https://www.crunchbase.com/search/organization.companies'
Сделайте запрос как:
req = scrapy.Request(url=url, headers=headers)
fetch(req)
Теперь вы получите 200 в ответ и воспользуетесь своим CSS-путем.
когда я попытался удалить вашу ссылку в оболочке scrapy, я получил код ответа 416 и веб-страницу, в которой говорилось: «Когда вы просматривали www.crunchbase.com, что-то в вашем браузере заставило нас подумать, что вы бот. Это может произойти по нескольким причинам. ...... ". По сути, это мера безопасности, которую вам нужно будет обойти, прежде чем вы сможете отказаться от этого веб-сайта. Итак, просто проверьте, как выглядит ваш текст ответа, прежде чем начинать выбирать элементы, чтобы убедиться, что вы решаете правильную проблему.