Для одного из моих статистических проектов мне нужно СЛУЧАЙНО загрузить несколько файлов со страницы патента Google, и каждый файл представляет собой большой zip-файл. Веб-ссылка следующая:
http://www.google.com/googlebooks/uspto-patents-grants-text.html#2012
В частности, я хочу СЛУЧАЙНО выбрать 5 лет (ссылки вверху страницы) и скачать (т.е. 5 файлов). Знаете ли вы, ребята, есть ли какой-нибудь хороший пакет, который подходит для этой задачи?
Спасибо.
Ответ 1 · рейтинг 1 · Kiril
Эта страница содержит в основном 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-адрес из списка ссылок и случайным образом выберите другой индекс (пока у вас не будет достаточно файлов или пока у вас не закончатся ссылки). Я не знаю, на каком языке программирования пишет ваша команда, но написать небольшую программу, которая делает вышеперечисленное, не составит большого труда.