Поддерживает ли Scrapy JavaScript для веб-сканирования?

Я слышал, что scrapy не поддерживает javascript. Я хотел знать, могу ли я использовать scrapy для обхода ссылок с помощью crawlspider на наш сайт интрасети, на нашем сайте интрасети есть javascript, и я полагаю, что он генерируется, когда вы нажимаете на ссылку, но я не уверен на 100%.

Но источник представления состоит из таблицы стилей xml и имеет те же данные, что и html, когда я использую firebug. Я также не могу очистить сайт с помощью тегов html, мне нужно использовать теги xml для очистки. Я не понимаю, почему у него есть и html, и xml, и есть данные по обоим, и почему я не могу очистить html только от xml?

Я знаю, что могу сканировать первую страницу, используя теги xml, но могу ли я продолжить переход по ссылке и продолжить сканирование?

Смогу ли я по-прежнему использовать CrawlSpider для обхода каждой ссылки, или я не могу? Если я не могу, вы можете предложить другой инструмент, который я могу использовать? который поддерживает javascripts и вход в систему после аутентификации (https).?

Спасибо!

Вот данные HTML, когда я использую firebug (те же данные, что и XML)

<tr>
<td class="crt">1</td>
<td class="listCell" align="center">
<td class="listCell" align="center">
<a href="/dis/packages.jsp?view=list&show=perdevice&device_gid=3651746C4173775343535452414567746D75643855673D3D53564A6151624D41716D534C68395A6337634E2F62413D3D&hwdid=probe0&subscrbid=6505550000&mdn=6505550000&maxlength=100">probe0</a>
</td>
<td class="listCell" align="center">
<a href="/dis/packages.jsp?view=list&show=perdevice&device_gid=3651746C4173775343535452414567746D75643855673D3D53564A6151624D41716D534C68395A6337634E2F62413D3D&hwdid=probe0&subscrbid=6505550000&mdn=6505550000&maxlength=100">6505550000</a>
</td>
<td class="listCell" align="center">
<a href="/dis/packages.jsp?view=timeline&show=perdevice&device_gid=3651746C4173775343535452414567746D75643855673D3D53564A6151624D41716D534C68395A6337634E2F62413D3D&hwdid=probe0&subscrbid=6505550000&mdn=6505550000&maxlength=100&date=20130716T141624949">2013-07-16 14:16:24.949</a>
</td>
<td class="cell" align="center">2013-07-16 14:16:24.949</td>
<td class="cell" align="left">1 - SMS_PullRequest_CS</td>
<td class="listCell" align="right">
<a href="/dis/profile_download?profileId=4294967295">4294967295</a>
</td>
<td class="listCell" align="center">
<a href="/dis/sessions.jsp?view=list&device_gid=3651746C4173775343535452414567746D75643855673D3D53564A6151624D41716D534C68395A6337634E2F62413D3D&hwdid=probe0&mdn=6505550000&subscrbid=6505550000&maxlength=100">view sessions</a>
</td>
<td class="listCell" align="center">
<a href="/dis/errors_agg.jsp?view=list&device_gid=3651746C4173775343535452414567746D75643855673D3D53564A6151624D41716D534C68395A6337634E2F62413D3D&hwdid=probe0&mdn=6505550000&subscrbid=6505550000&maxlength=100">view errors</a>
</td>
</tr>

Вот данные, когда я использую XML-таблицу стилей источника просмотра (те же данные, что и HTML)

<row>
<cell type="href" href="/dis/packages.jsp?view=list&show=perdevice&device_gid=3651746C4173775343535452414567746D75643855673D3D53564A6151624D41716D534C68395A6337634E2F62413D3D&hwdid=probe0&mdn=6505550000&subscrbid=6505550000&maxlength=100">6505550000</cell>
<cell type="href" href="/dis/packages.jsp?view=list&show=perdevice&device_gid=3651746C4173775343535452414567746D75643855673D3D53564A6151624D41716D534C68395A6337634E2F62413D3D&hwdid=probe0&subscrbid=6505550000&mdn=6505550000&maxlength=100">probe0</cell>
<cell type="href" href="/dis/packages.jsp?view=list&show=perdevice&device_gid=3651746C4173775343535452414567746D75643855673D3D53564A6151624D41716D534C68395A6337634E2F62413D3D&hwdid=probe0&subscrbid=6505550000&mdn=6505550000&maxlength=100">6505550000</cell>
<cell type="href" href="/dis/packages.jsp?view=timeline&show=perdevice&device_gid=3651746C4173775343535452414567746D75643855673D3D53564A6151624D41716D534C68395A6337634E2F62413D3D&hwdid=probe0&subscrbid=6505550000&mdn=6505550000&maxlength=100&date=20130716T143636194">2013-07-16 14:36:36.194</cell>
<cell type="plain">2013-07-16 14:36:36.194</cell>
<cell type="plain">1 - SMS_PullRequest_CS</cell>
<cell type="href" href="/dis/profile_download?profileId=4294967295">4294967295</cell>
<cell type="href" href="/dis/sessions.jsp?view=list&device_gid=3651746C4173775343535452414567746D75643855673D3D53564A6151624D41716D534C68395A6337634E2F62413D3D&hwdid=probe0&mdn=6505550000&subscrbid=6505550000&maxlength=100">view sessions</cell>
<cell type="href" href="/dis/errors_agg.jsp?view=list&device_gid=3651746C4173775343535452414567746D75643855673D3D53564A6151624D41716D534C68395A6337634E2F62413D3D&hwdid=probe0&mdn=6505550000&subscrbid=6505550000&maxlength=100">view errors</cell>
</row>

person Gio    schedule 16.07.2013    source источник


Ответы (2)


Обычно для JS вы используете безголовый браузер, который будет выполнять ваш javascript. Splash с промежуточным программным обеспечением scrapy-splash и Selenium — два популярных варианта.

person prisoneroffreedom    schedule 20.08.2017

Я тоже борюсь с очисткой js... дай пять.

один быстрый способ узнать, отвечает ли scrapy на js с определенного веб-сайта, — это проверить из оболочки scrapy. http://doc.scrapy.org/en/latest/topics/shell.html вы можете просмотреть, как scrapy понимает URL-адрес вашего запроса, через представление (ответ).

Например, view(response) не показывает обзоры продуктов от bestbuy, но с обзорами продуктов eBay все в порядке.

для связанного поиска http://snipplr.com/all/tags/scrapy/ может быть полезный.

также может быть полезно, если вы разместите здесь своего паука.

удачи! напиши мне если решишь!

person pforyogurt    schedule 23.07.2013