ishiducaの日記 このページをアンテナに追加 RSSフィード

2010-04-12

[][]pixivのお気に入りさんの画像を一括ダウンロードする 11:50 pixivのお気に入りさんの画像を一括ダウンロードする - ishiducaの日記 を含むブックマーク はてなブックマーク - pixivのお気に入りさんの画像を一括ダウンロードする - ishiducaの日記 pixivのお気に入りさんの画像を一括ダウンロードする - ishiducaの日記 のブックマークコメント

2010.08.16【追記】なんかはてブされているようなので、コードを修正しました。pixivのデザイン変更があったのでそれに合わせてスクレイピングのxpathを書き直してる

同じようなスクレイピングが続きます。すみません。

さて、気になったユーザーさんの画像を一括でダウンロードします(pixiv2pl)。

WWW::Mechanizeでコンテンツを保存するのに save_content( filename ) を使ってみました。他には目新しいことしてません。すみません。

ユーザーさんの指定は、ユーザーさんのプロフィールページで確認してください。こんな感じで表示されます。

http://www.pixiv.net/member.php?id=number

numberの部分、実際には4とか5桁の数字で、この数字を使います。

$ perl pixiv2pl 1234

というふうに。

pixiv2pl

#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
use Web::Scraper;
use File::Basename;

# 引数にダウンロードするお気に入りさんのID番号を指定します
$ARGV[0] or die "Usage: $0 id_numer\n";
# $ARGV[0] =~ /^[0-9]{4,5}$/
#     or die qq(Warn: Please specify "id_number" by the figure of four digits.\n);
my $id = $ARGV[0];

my $home = 'http://www.pixiv.net/';
my $mech = new WWW::Mechanize( autocheck => 1 );
$mech->get($home);

# my_userid, my_password は自分のを使ってね
$mech->submit_form(
    form_number => 2,
    fields => {
        'mode'     => 'login',
        'pixiv_id' => 'my_userid',
        'pass'     => 'my_password',
    },
);

my $scraper0 = scraper {
    process '//div[@class="two_column_body"]/div[3]/ul[1]/li', 'li[]' => scraper {
        process "a",   'link'    => '@href';
    };
};

my $scraper1 = scraper {
    process '//div[@class="works_display"]/a[1]', "content2" => '@href';
};

my $scraper2 = scraper {
    process '//img[1]', 'img' => '@src';
};

my $c = 1;
while( $mech->get("${home}member_illust.php?id=$id&p=$c") ) {
    my $res = $scraper0->scrape($mech->content);
    for my $li (@{$res->{li}}) {
      # "見つかりませんでした" がでたら終りにする
        $li->{link} or print "Finish!\n" and exit 0;

        $mech->get("${home}$li->{link}");
        my $res = $scraper1->scrape($mech->content);
        $mech->get("${home}$res->{content2}");
        $res = $scraper2->scrape($mech->content);
        $mech->get($res->{img});

      # コンテンツそのものをダウンロードするのに save_content() メソッドを使ってみた
        $mech->save_content( basename($res->{img}) );
        print "save as ", basename($res->{img}), "\n";
    }
    $c++;
}

exit 0;

ScreamingScreaming2013/02/01 23:12That's an expert answer to an inetrsetnig question

MarniMarni2013/02/02 03:32That's going to make things a lot esaeir from here on out.

whswunwhswun2013/02/02 18:35OC6lYI <a href="http://yrozbekqtrfg.com/">yrozbekqtrfg</a>

gltcaqhvvwogltcaqhvvwo2013/02/04 01:40LFYNtp , [url=http://crisujbatyyi.com/]crisujbatyyi[/url], [link=http://xyerhjckbked.com/]xyerhjckbked[/link], http://ocmvfcnvcymm.com/

xzpgskbxzpgskb2013/02/04 12:10t5mHqX <a href="http://czcagiyagdep.com/">czcagiyagdep</a>

MytishiJagmaMytishiJagma2018/02/08 21:45Благодаря чистовой отделке люди создают вокруг себя обстановку, в которой бы они чувствовали себя максимально комфортно. <a href=https://xn--80aieocueqr8g.xn--p1ai>купить 2 комнатную квартиру в мытищах</a> владимир васильевич щербицкий принадлежал к числу любимцев брежнева. <a href=https://xn--80aieocueqr8g.xn--p1ai>жк отрадный цена</a>

VenessakatVenessakat2018/02/20 06:48play casinos
<a href=http://casinoline17.com/>casino games</a>
<a href="http://casinoline17.com/">slot game</a>
casino online free

TyallerDryncTyallerDrync2018/03/16 14:12В нашей интернет аптеке вы сможете заказать софосбувир и даклатасвир по низкой стоимости

<a href=https://sofosbuvir-express24.ru/lekarstvo-ot-raka/541/>зелбораф цена</a>
<a href=https://sofosbuvir-express24.ru/lekarstvo-ot-raka/552/>капрелса вандетаниб</a>


<a href=https://sofosbuvir-express24.ru/lekarstvo-ot-raka/551/>lynparza olaparib</a>
<a href=https://sofosbuvir-express24.ru/lekarstvo-ot-raka/552/>caprelsa капрелса вандетаниб vandetanib</a>

MarthaUniptMarthaUnipt2018/03/22 08:23online loans
<a href=https://smajloans.com/>payday loans online</a>
<a href="https://smajloans.com/">payday loans no credit check</a>
payday loans no credit check

ReneeJaxReneeJax2018/03/22 22:49casinos online
<a href=http://casinogameslistonline.com/>online casino gambling</a>
<a href="http://casinogameslistonline.com/">online casino games</a>
slot online

VaughnReitaVaughnReita2018/03/24 03:42Готовые гарнитуры для детской комнаты представляют собой универсальный уголок, в котором есть буквально все необходимое для полноценного развития ребенка, подробнее об этом читайте на сайте <a href=http://teletap.org>teletap.org</a>

HerbertReessHerbertReess2018/03/25 19:20Последние новости андроид здесь <a href=http://hi-android.net/>hi-android.net</a>

WayneeronyWayneerony2018/03/27 08:41Считается, что повышенный уровень глюкозы в крови является главной причиной развития диабета 2-го типа. Однако немецкие ученые доказали: резистентность клеток к инсулину может быть вызвана увеличением концентрации в крови метилглиоксаля (MG) - метаболита глюкозы. Подробнее читайте на сайте <a href=http://dom-lady.ru>dom-lady.ru</a>

MichaelTrisyMichaelTrisy2018/04/02 02:15На рынке спальных принадлежностей особое место занимают подушки и одеяла с натуральными наполнителями, в частности, подушки из овечьей шерсти. Этот природный материал еще с библейских времен используется человеком для изготовления одежды, бытовых и постельных принадлежностей. Читайте об этом подробнее на сайте <a href=http://dettka.com>dettka.com</a>

RonnierhyncRonnierhync2018/04/02 18:40В настоящее время покупатели проявили большой интерес к новинке – живым цветам в стекле. Они прекрасно смотрятся на столе, на тумбочке, по внешнему виду ничем не отличаясь от обычных живых цветов, подробнее об этом читайте на сайте <a href=http://tvoi-noski.ru>tvoi-noski.ru</a>

JerryDagJerryDag2018/04/05 13:03Стоматологическая помощь заключается в том, чтобы обеспечить пациенту сохранность и лечение зубов. Но когда это необходимо, то зубы приходится удалять, подробнее читайте на сайте <a href=http://shoptrip.ru>shoptrip.ru</a>

GarryDomGarryDom2018/04/08 06:30Современные жилые дома стали намного полезнее и красивее, благодаря застекленным балконам. В настоящее время вместо пластиковых рам можно использовать алюминиевые профили. Подробнее читайте на сайте <a href=http://montazhnik02.ru>montazhnik02.ru</a>

DavidvubDavidvub2018/04/09 10:15Самые свежие женские новости тут <a href=http://babybynature.ru/>babybynature.ru</a>

DustinChabyDustinChaby2018/04/11 09:50Взбить творог блендером, добавить 100 грамм сметаны. Должна получиться гладкая смесь без комков. Читайте об этом подробнее на сайте <a href=http://zonakulinara.ru>zonakulinara.ru</a>

WayneDuhWayneDuh2018/04/11 15:56Главной причиной возникновения и развития пульпита является воспаление соединительной волокнистой ткани, находящейся внутри зуба. Эту ткань стоматологи называют пульпой, отсюда и название заболевания – пульпит, подробнее об этом читайте на сайте <a href=http://medinfon.ru>medinfon.ru</a>

RobertrerRobertrer2018/04/12 12:09Новости кулинарного мира тут <a href=http://fitelife.ru/>fitelife.ru</a>

RamonaStusaRamonaStusa2018/04/12 16:14online casino games
<a href=http://casino24list.com/>kasino</a>
<a href="http://casino24list.com/">online casino slots</a>
slot game

ThomasnerThomasner2018/04/13 07:49Последние компьютерные новости здесь <a href=http://devays.ru/>devays.ru</a>

VincentcigVincentcig2018/04/13 08:40Последние строительные советы здесь [url=http://495realty.ru/]495realty.ru[/url]

PatricksaxPatricksax2018/04/16 05:48Последние женские новости здесь <a href=http://french-foto.ru/>french-foto.ru</a>

AaronclewsAaronclews2018/04/16 10:27Отличные строительные советы здесь <a href=http://akvakraska.ru/>akvakraska.ru</a>

StanleySesStanleySes2018/04/17 01:09Для того, чтобы провести отпуск в Греции, следует получить соответствующую документацию, подробнее читайте на сайте <a href=http://gturs.com>gturs.com</a>

MattieSahMattieSah2018/04/17 16:27online casino
<a href=http://casino24list.com/>casino games real money</a>
<a href="http://casino24list.com/">online casino real money</a>
slot game

JamesTofJamesTof2018/04/19 14:14Последние модные стрижки здесь <a href=http://chyolka.ru/>chyolka.ru</a>

MichaelEcoloMichaelEcolo2018/04/20 03:32Новости медицины тут <a href=http://griskomed.ru/>griskomed.ru</a>

JefferyDixJefferyDix2018/04/20 12:06Приветствую! Класный у вас сайт!
Что скажете по поводу этих новостей?:
http://techrize.ru/news/6739-sputnikovaya-razvedka-puska-buka-ne-bylo.html <b> Спутниковая разведка: Пуска "Бука" не было </b>
http://techrize.ru/news/1370-srednee-obrazovanie-v-rossii-stanet-platnym-s-2013-goda.html
http://techrize.ru/news/3282-mp-schitaet-povyshenie-vodnogo-naloga-neobhodimym.html
Ещё много интересного по теме нашел тут: <b> территория под контролем лнр </b> <a href=http://techrize.ru/> днр новости сегодня онлайн </a>

Pisaruk143Pisaruk1432018/04/21 04:12смотреть фильм бесплатно в хорошем качестве полностью <a href=http://kinoset.online>смотреть фильмы в hd</a>

ArchiebobArchiebob2018/04/23 00:23Подарок руководителю, крупному бизнесмену, серьезному и ответственному человеку зрелого возраста должен быть солидным, запоминающимся, весомым, и недешевым, однозначно. Подробнее об этом читайте на сайте <a href=http://fi-hi.ru>fi-hi.ru</a>

JustinTUpJustinTUp2018/04/25 01:31Конкуренцию стандартным петельным межкомнатным открывающимся конструкциям составляют более функциональные решения – сдвижные двери. Они так же включают в себя полотна из древесины или иного материала, вот только главные элементы блока движутся по прямым линиям (направляющим) параллельно стене. Читайте об этом подробнее на сайте <a href=http://akro-spb.ru>akro-spb.ru</a>

KevinkixKevinkix2018/04/26 12:05Привет!
Нашел познавательную подборку на этом сайте: http://anubi.ru :
http://anubi.ru/foto-prikoly-interesnoe/4369-progulka-po-serdcu-zalcburga.html <b> Прогулка по «сердцу» Зальцбурга </b>
http://anubi.ru/foto-prikoly-interesnoe/1846-more-krasnyh-makov-v-londonskom-tauere.html <b> Море красных маков в лондонском Тауэре </b>
http://anubi.ru/foto-prikoly-interesnoe/6430-izumitelnaya-krasota-kitaya-bez-turistov.html

MorrisSibMorrisSib2018/04/26 13:20Привет всем участникам! Класный у вас сайт!
Нашёл инфу в сети:
http://firstnewz.ru/information-technology-it/20930-mmo-ekshen-crossout-vyshel-v-rannem-dostupe-v-steam.html <b> MMO-экшен Crossout вышел в раннем доступе в Steam </b>
http://firstnewz.ru/news/9752-semenchenko-rano-ili-pozdno-my-smozhem-dostavat-terroristov-v-lyuboy-tochke-zemnogo-shara.html
http://firstnewz.ru/news/13953-kitay-kupil-u-rossii-24-istrebitelya-su-35.html
<b> комендант лнр грачев http://firstnewz.ru/

RolandapastRolandapast2018/05/03 09:59Архитектурное проектирование объектов различных типов сооружений — это важнейший этап, значительный и ответственный в строительном процессе, подробнее читайте на сайте <a href=http://roofor.ru>roofor.ru</a>

JamesPumJamesPum2018/05/03 19:42Привет!
Нашел приколы за день на этом сайте: http://agentorange.ru :
http://agentorange.ru/art-foto-interesnoe/5033-otel-dlya-mertvyh-v-yaponii.html <b> Отель для мертвых в Японии </b>
http://agentorange.ru/art-foto-interesnoe/575-zasuha-v-kalifornii.html <b> Засуха в Калифорнии </b>
http://agentorange.ru/art-foto-interesnoe/5779-parizhskaya-podzemka.html

DennisCaumbDennisCaumb2018/05/05 17:14Состояние окружающей нас среды во многом зависит от правильного использования природных ресурсов, которые даются человеку. Это касается и строительной деятельности. Подробнее об этом читайте на сайте <a href=http://beton-cement-ru.ru>beton-cement-ru.ru</a>

WalterlakWalterlak2018/05/05 21:15Последние строительные новости здесь <a href=https://dipris-studio.ru/>dipris-studio.ru</a>

OliverdropsOliverdrops2018/05/06 01:01Последние андроид новости здесь <a href=http://androidusers.ru/>androidusers.ru</a>

MichaelSadlyMichaelSadly2018/05/06 03:23Самые свежие новости Астрахани. Читайте об этом подробнее на сайте <a href=https://astrakhan.net>astrakhan.net</a>

AlfredKipAlfredKip2018/05/06 07:34Прежде всего, ознакомьтесь с документами. У застройщика должна быть лицензия на ведение строительных работ, разрешение на строительство данного объекта и документы на ввод интересующего вас дома в эксплуатацию. Подробнее читайте на сайте <a href=http://sovet-sadovody.ru>sovet-sadovody.ru</a>

WilliamhogWilliamhog2018/05/06 10:16viagra without insurance <a href=http://viagrawithoutdocpresc.accountant/#9645>viagra without a doctor</a> viagra without a doctor prescription online pharmacies

CharlesbootoCharlesbooto2018/05/12 19:16Модные женские советы здесь <a href=http://dicask.ru/>dicask.ru</a>

JimmyEnumeJimmyEnume2018/05/13 02:45Последние автомобильные новости здесь <a href=http://drivim.ru/>drivim.ru</a>

ChesterHotChesterHot2018/05/13 08:03Новости строительного мира тут <a href=http://lakkk.com/>lakkk.com</a>

JasonEroffJasonEroff2018/05/13 09:32Последние женские секретики здесь <a href=http://www.foto-volos.ru/>www.foto-volos.ru</a>

ClaudeborceClaudeborce2018/05/13 16:42Последние новости строительства здесь <a href=http://distroy.ru/>distroy.ru</a>

BillyFalBillyFal2018/05/14 02:15Новости компьютерного мира тут <a href=http://rebenokboleet.ru/>rebenokboleet.ru</a>

JasonDobJasonDob2018/05/14 02:40Последние новости здесь <a href=http://kfaktiv.ru/>kfaktiv.ru</a>

MartinPhakeMartinPhake2018/05/14 05:41Последние новости политики здесь <a href=http://vash-deputat.ru/>vash-deputat.ru</a>

JeffreypearyJeffreypeary2018/05/15 15:20Все знают, что натуральные природные материалы имеют массу преимуществ, среди которых экологичность, невероятный дизайн, прочность и долговечность, подробнее читайте на сайте <a href=http://dumainfo.ru>dumainfo.ru</a>

BillynapBillynap2018/05/15 20:19Новости народной медицины здесь <a href=http://medata.org/>medata.org</a>

MarvinLexMarvinLex2018/05/16 01:05Последние новости шопинга здесь <a href=http://tvoirazmer.ru/>tvoirazmer.ru</a>

DennisCitDennisCit2018/05/16 03:38Если вы хотите выучить иностранный язык в совершенстве, начинайте в самом раннем детстве. Ученые определили возрастной порог, до которого это сделать проще, передает BBC. Читайте об этом подробнее на сайте <a href=http://s-narodom.ru>s-narodom.ru</a>

JefferygUsJefferygUs2018/05/17 07:26Последнии новости армении читайте на сайте <a href=http://hayastannews.com>hayastannews.com</a>

RichardcoxRichardcox2018/05/19 00:29Последние мировые новости здесь <a href=http://www.planetoday.ru/>www.planetoday.ru</a>

ThomascexThomascex2018/05/19 05:01Привет всем участникам! Класный у вас сайт!
Что думаете по этим новостям?:
http://mybioplanet.ru/politika/23301-kandidat-na-post-gossekretarya-ssha-otchital-zhurnalistku-za-predvzyatost-k-rossii.html <b> Кандидат на пост Госсекретаря США отчитал журналистку за предвзятость к России </b>
http://mybioplanet.ru/news/20608-v-odesse-otkryvaetsya-verbovochnyy-centr-vms-vsu.html
http://mybioplanet.ru/information-technology-it/21334-poiskovyy-otryad-liza-alert-zapustil-mobilnoe-prilozhenie.html
Ещё много интересного по теме нашел тут: <b> как наказывают девушек в лнр </b> http://mybioplanet.ru/

RobertCabRobertCab2018/05/19 13:27Приветствую всех!
Нашел прикольные фотки на этом сайте: http://agentmdk.ru :
http://agentmdk.ru/foto-prikoly-interesnoe/6802-zhenschina-na-puti-geniya-kak-statistka-iz-rossii-zabrala-u-muzyki-imre-kalmana.html <b> Женщина на пути гения: как статистка из России забрала у музыки Имре Кальмана </b>
http://agentmdk.ru/foto-prikoly-interesnoe/7105-dom-trenazher-v-yaponii.html <b> Дом-тренажер в Японии </b>
http://agentmdk.ru/foto-prikoly-interesnoe/1281-gorilly-ne-podelili-pomidorchik.html

DerekmowDerekmow2018/05/22 11:53Последние новости мира тут <a href=http://novorossia-news.com/>novorossia-news.com</a>

TimothyadmipTimothyadmip2018/05/24 00:33Последние новости Томской области здесь <a href=http://tom3.ru/>tom3.ru</a>

RafaelflienRafaelflien2018/05/24 10:11Популярные женские новости тут <a href=http://laform.ru/>laform.ru</a>

CharlesengefCharlesengef2018/05/24 14:11Последние новости Армении здесь <a href=http://lratvakan.com/>lratvakan.com</a>

DavidCakDavidCak2018/05/26 07:55Автомобильные новости здесь <a href=http://drive-land.net/>drive-land.net</a>

GeraldnawGeraldnaw2018/05/29 06:18Строительные советы здесь <a href=http://www.overbag.ru/>www.overbag.ru</a>

ChesterFefChesterFef2018/05/31 01:20Достаточно непростой задачей поисковой оптимизации является продвижение корпоративного сайта. Качественное продвижение в Яндексе или Гугле поможет повысить посещаемость корпоративного сайта. Подробнее читайте на сайте <a href=http://gdefile.ru>gdefile.ru</a>

KelvinToxKelvinTox2018/06/15 21:45Здравствуйте! Класный у вас сайт!
Нашёл познавательное для дачных участков и не только: <b> <a href=http://www.ekolestnica.ru/>поручень из дуба для лестницы</a>
Тут: https://www.ekolestnica.ru/dveri-sevastopol.html двери массив купить в севастополе
Тут: <a href=https://www.ekolestnica.ru/balyasiny-v-sankt-peterburge.html> балясины деревянные купить в спб </a> балясины деревянные купить в спб
Тут: https://www.ekolestnica.ru/mebelnyj-shhit-v-smolenske.html

トラックバック - http://perl.g.hatena.ne.jp/ishiduca/20100412

2010-04-11

[][]Web::Scraperをもう少し 19:17 Web::Scraperをもう少し - ishiducaの日記 を含むブックマーク はてなブックマーク - Web::Scraperをもう少し - ishiducaの日記 Web::Scraperをもう少し - ishiducaの日記 のブックマークコメント

以前ワンライナーで書いた画像収集のコード(オトギリさんのホームページから画像収集)、があるけど、Web::Scraperを使ってやってみる。

ただ、これは別のサイト(というか、ブログ)だけど。

FC2のサイトだと mainEntryBodyクラス内の a タグでひっぱてくればいいので、こんな感じで。

get_img_from_fc2pl

#!/usr/bin/perl
use strict;
use warnings;
use Web::Scraper;
use URI;
use LWP::Simple;
use File::Basename;

@ARGV or die "Usage: $0 uri [...]\n";

# FC2 のサイト用
my $scraper = scraper {
    process ".mainEntryBody a", "link[]" => '@href';
};

foreach my $uri (@ARGV) {
    my $res = $scraper->scrape(URI->new($uri));
    print "$_\n" and mirror($_, basename($_))
        foreach (grep{ /^http:\/\/(.+?)$/i }(@{$res->{link}}));
    print "\n";
}

exit 0;
トラックバック - http://perl.g.hatena.ne.jp/ishiduca/20100411

2009-05-03

[][]オトギリさんのホームページから画像収集 17:32 オトギリさんのホームページから画像収集 - ishiducaの日記 を含むブックマーク はてなブックマーク - オトギリさんのホームページから画像収集 - ishiducaの日記 オトギリさんのホームページから画像収集 - ishiducaの日記 のブックマークコメント

事情というか、経緯は voxの記事 を参照してもらうとして、手順だけ。コードはワンライナーで画像収集/perl-users.jpのパクリ以外の何でもんですけど。

該当するウェブページからリンクの貼られた画像ファイルをダウンロードします。使い回しは結構効くんじゃないのかな?

  1. 画像を集めるディレクトリを作る
  2. 画像ファイルのリストを作る(テスト)
  3. 画像ファイルをダウンロードする

1. 画像を集めるディレクトリ (Otogiri) を作る

$ mkdir Otogiri

作っただけじゃワンライナーを実行してもディレクトリーに保存できないので

$ cd Otorigi

する

2. 正しく画像ファイル(.jpg)がリストにできるかテスト

$ perl -MLWP::Simple -e '$,="\n"; print map{ "$ARGV[0]$_" }get($ARGV[0]) =~ m|<a.*?href="([^"]+\.jpg)"|gi;' http://redsky.sakura.ne.jp/

3. 画像ファイルをダウンロードする

$ perl -MLWP::Simple -MFile::Basename -we 'map{$_="$ARGV[0]$_";mirror($_,basename($_))}get($ARGV[0]) =~ m|<a.*?href="([^"]+\.jpg)"|gi;' http://redsky.sakura.ne.jp/

で画像を集める

スクリプト(dl.pl)にするとこう。

#!/usr/bin/perl -w
use strict;
use LWP::Simple;
use File::Basename;

@ARGV == 1 or die "Usage:$0 URL\n";

my $content = get shift; # get $ARGV[0];
@list = $content =~ m|<a.*?href="([^"]+\.jpg)"|gi;

# 正規表現が正しいかチェックする段階で使う
#{
#   $, = "\n";
#   print @list,"\n";
#}

map{ $_ = "$ARGV[0]$_"; mirror($_,basename($_)) }@list;

exit 0;

実行するときは

$ perl dl.pl http://redsky.sakura.ne.jp
トラックバック - http://perl.g.hatena.ne.jp/ishiduca/20090503