оболочка scrapy выглядит по-другому как пользовательский интерфейс, часть сайта не подлежит уничтожению - PullRequest
0 голосов
/ 24 апреля 2019

Проблема в том, что я не могу почистить часть сайта.Если я использую Chrome Devmode, я не могу скопировать правильную позицию, ни в xpath, ни в селектор.

Я бы получил правильный путь для других вкладок или дивов, например, заголовок тела: body > div.header.home-header > div

, тогда как, когда я пытаюсь получить вкладку с нужной мне информацией, я получаю только:#htmlContent.Если я напишу это вручную, это должно быть: body > div.main.main-top.seach-boxstyle > div > div > div.recommend-product-wrap.produc-text > div > div.recommend-product, но это вернуло пустой список.

Я думаю о том, если кто-то сделает всю сессию, на которую я ссылаюсь, чтобы я не мог почистить, или другой вопрос.URL-адрес на китайском, хотя: http://www.usewealth.com/Product/More.aspx?productDisplay=isArticle

Я пытаюсь помочь компании очистить свой собственный список рекомендуемых свопов, в то время как этот список никак не отображается.

1 Ответ

1 голос
/ 24 апреля 2019

Проблема в том, что страница отображает свое содержимое динамически с использованием JavaScript. Сам Scrapy не запускает JavaScript, он только загружает исходный HTML-код страницы, поэтому динамического содержимого там нет. Есть в основном два варианта, что делать в таком случае. Либо отредактируйте страницу, используя какой-либо браузер без головы (например, Selenium или Splash), и дайте Scrapy проанализировать полученный результат. Исходя из моего опыта, я бы порекомендовал использовать Splash, потому что он более надежен, а интеграция со Scrapy бесшовна с использованием библиотеки scrapy-splash .

Другой вариант - использовать инструменты разработчика браузера, чтобы проверить, не использует ли страница API для получения данных (который затем JavaScript отображает на странице). Это похоже на случай с сайтом, который вы пытаетесь очистить. Изучая инструменты разработчика Chrome (вкладка «Сеть», а затем XHR-запросы), я вижу POST-запросы к этому URL:

http://www.usewealth.com/Action/ProductAJAX.ashx

Возвращает ответ JSON, который, кажется, содержит все необходимые данные и который можно проанализировать с помощью стандартной библиотеки json.

...