Как разобрать сайт и получить информацию - PullRequest
0 голосов
/ 11 декабря 2011

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

Это пример источника, который я пытаюсь пройти.

<div class="story-item-content group">
<div class="story-item-details">
  <h3 class="story-item-title">
    <a href="/story/r/how_not_to_fix_your_computer_part_2" target="_blank" class="external-link ">How NOT to fix your computer, part 2.</a>
    <span class="external-link-icon"></span>                                            
    </h3>
    <p class="story-item-description">
         <a href="/search?q=site:zug.com" class="story-item-source" title="More stories from zug.com">zug.com</a>                            <a href="/news/technology/how_not_to_fix_your_computer_part_2" class="story-item-teaser">&mdash; After you read this you should understand what not to do.
        <span class="timestamp">21 hr 59 min ago</span></a>
        <a class="crawl4link" href="http://crawl4.digg.internal/permalink/view/how_not_to_fix_your_computer_part_2">View in Crawl 4</a>
    </p>
</div>

Так в строке 4. ссылка href = "/ story / r / how_not_to_fix_your_computer_part_2

работает только на живом сайте. Когда я скачиваю исходники и нажимаю на ссылку. Это не сработает. Я предполагаю, что ссылка сохраняется на сервере. Любая идея, как я могу получить полную ссылку? Я думал о скрипте, который щелкает по этой ссылке, чтобы я мог получить рабочую ссылку. есть идеи как это сделать? Thnx

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

этот URL является относительным URL,

, поэтому, если ваш веб-сайт:

http://mywebsite.com/index.html

тогда ваша полная ссылка

http://mysebsite.com/story/r/how_not_to_fix_your_computer_part_2

0 голосов
/ 11 декабря 2011

Это относительная ссылка относительно корневого каталога сайта.Просто добавьте домен (например, example.com/story/r/how_not_to_fix_your_computer_part_2).

Причина, по которой переход по ссылке не работает, заключается в том, что значение href является относительным ... относительно местоположения, в котором находится файлхранится на.Как только вы загрузите страницу на свой локальный компьютер, она больше не будет относиться к исходному домену, браузер предположит, что ищет файл в http://localhost/story/r/how_not_to_fix_your_computer_part_2., и поскольку по этому URL-адресу нет файла или ресурса, он терпит неудачу.

Что вы хотите сделать, это изменить значение href на абсолютный URL, добавив исходный домен (т. е. digg.com/story/r/how_not_to_fix_your_computer_part_2).Тогда он будет работать, когда вы щелкнете по нему с локального диска.

Вам не нужно беспокоиться о числах, добавленных в URL, когда он окончательно разрешится, что будет обработано ресурсом в digg.ru / story / r / how_not_to_fix_your_computer_part_2 url.

...