Как узнать, какой браузер используется для сканирования в Scrapy Framework? - PullRequest
0 голосов
/ 05 декабря 2018

Каков мой контекст:

  • Как вы знаете, структура HTML сайта в Chrome, Firefox, Safari довольно различна.Поэтому, когда я использую CSS-селектор для получения данных в теге элемента из структуры HTML, иногда это тот тег, который уже есть в браузере Chrome, а другой нет.Поэтому я просто хочу сосредоточиться только на одном браузере, чтобы уменьшить свои усилия.
  • Когда я сканирую данные из URL-адресов с помощью платформы Scrapy, я не знаю, какой браузер будет использоваться Scrapy для сканирования данных.Поэтому я также не знаю, какое тело ответа HTML будет возвращено.Я проверил ответ и обнаружил, что иногда структура такая же, как в Chrome, но иногда это не так.Похоже, что в Scrapy Framework для сканирования данных использовалось много разных веб-браузеров.

Что я хочу:

  • Я хочу использовать только браузер Chrome для сканирования данных в Scrapy Framework
  • Структура тела HTML-ответа должна быть получена из Chrome

Что я спрашиваю:

  • Есть ли у кого-нибудь какие-либо идеи или советы, которые помогут мне разобратьсяс этой проблемой?
  • Могу ли я настроить Webdriver в Scrapy Framework, как это делает Selenium?(Если это возможно, пожалуйста, покажите мне, где и как?)

Спасибо!

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Scrapy не использует браузер, это синтаксический анализатор для статического HTML, как BeautifulSoup.если вы хотите анализировать динамическую страницу (сгенерированный javascript), используйте selenium и при желании вы можете отправить исходный код страницы в Scrapy.

Чтобы настроить Scrapy на использование пользовательского пользовательского агента (Chrome), в settings.pyдобавить

USER_AGENT = Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36

или my_spider.py

class MySpider(scrapy.Spider):
    def start_requests(self):
        yield scrapy.Request(self.start_urls, callback=self.parse, headers={"User-Agent": "Your Custom User Agent"})
0 голосов
/ 05 декабря 2018

Вы можете установить пользовательский агент в своем файле настроек, что-то вроде этого

USER_AGENT = 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'

Так что для веб-сервера это будет выглядеть так, как будто запрос генерируется из Chrome.

...