Как включить «wget» для загрузки всего содержимого HTML с помощью Javascript - PullRequest
6 голосов
/ 14 апреля 2010

У меня есть сайт , который я хочу загрузить с помощью Unix wget. Если вы посмотрите на исходный код и содержимое файла, он содержит раздел под названием РЕЗЮМЕ. Однако после выдачи команды wget вот так:

wget   -O downdloadedtext.txt  http://www.ncbi.nlm.nih.gov/IEB/Research/Acembly/av.cgi?db=mouse&c=gene&a=fiche&l=2610008E11Rik 

Содержимое downdloadedtext.txt является неполным и отличается от исходного кода этого сайта. Например, он не содержит раздел РЕЗЮМЕ. Есть ли правильный способ получить полный контент правильно?

Причина, по которой я спрашиваю об этом, потому что я хочу автоматизировать загрузку с различными значениями в этом HTML.

Ответы [ 3 ]

11 голосов
/ 14 апреля 2010

Вам нужно поставить ссылку внутри кавычек:

 wget -O downdloadedtext.txt  'http://www.ncbi.nlm.nih.gov/IEB/Research/Acembly/av.cgi?db=mouse&c=gene&a=fiche&l=2610008E11Rik'

Это связано с тем, что символ & имеет особое значение и разделяет команду на несколько команд.

3 голосов
/ 14 апреля 2010

Символ & имеет особое значение в оболочках. Заключите URI в кавычки, чтобы фактически запросить URI, который вы хотите запросить.

2 голосов
/ 14 апреля 2010

Вы можете использовать флаг -p (--page-prerequisites), чтобы сообщить wget о получении связанных ресурсов. От man wget:

Эта опция заставляет Wget загружать все файлы, необходимые для правильного отображения заданной HTML-страницы. Это включает в себя такие вещи, как встроенные изображения, звуки и ссылочные таблицы стилей.

Вы также можете посмотреть опцию --follow-tags, которая позволяет ограничить этот процесс:

Wget имеет внутреннюю таблицу пар тегов / атрибутов HTML, которую он учитывает при поиске связанных документов во время рекурсивного поиска. Однако, если пользователь хочет, чтобы рассматривалась только часть этих тегов, он должен указать эти теги в списке через запятую с помощью этой опции.

...