Каковы некоторые хорошие сканеры, которые могут помочь загрузить файлы - PullRequest
0 голосов
/ 20 февраля 2012

Для одного из моих проектов статистики мне нужно СЛУЧАЙНО загрузить несколько файлов со страницы патента Google, и каждый файл представляет собой большой zip-файл. Веб-ссылка следующая:

http://www.google.com/googlebooks/uspto-patents-grants-text.html#2012

В частности, я хочу СЛУЧАЙНО выбрать 5 лет (ссылки вверху страницы) и загрузить (т.е. 5 файлов). Ребята, вы знаете, есть ли какой-нибудь хороший пакет, который подходит для этой задачи?

Спасибо.

1 Ответ

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

Эта страница содержит в основном zip-файлы, и, глядя на содержимое HTML, кажется, что довольно просто определить, какие ссылки приведут к zip-файлу, просто выполнив поиск *.zip в коллекции URL-адресов кандидатов, поэтому здесь что я бы порекомендовал:

fetch the page
parse the HTML
extract the anchor tags
for each anchor tag
    if href of anchor tag contaings "*.zip"
        add href to list of file links

while more files needed
    generate a random index i, such that i is between 0 and num links in list
    select i-th element from the links list
    fetch the zip file
    save the file to disk or load it in memory

Если вы не хотите получать один и тот же файл дважды, просто удалите URL из списка ссылок и случайным образом выберите другой индекс (пока у вас не будет достаточно файлов или пока у вас не закончатся ссылки). Я не знаю, на каком языке программирования работает ваша команда, но не составит труда написать небольшую программу, которая выполняет все вышеперечисленное.

...