mecanize.rb ������ mixi diary ������¼«�����¼������������¹������
Posted by yoosee on Web at 2005-09-02 23:42 JST1 WWW::Mechanize alike in ruby
WWW::Mechanize ������ Web\��⏢�¼\������������Ð���·��������¡�\���\���\���\�����«������������\��\���\»\¹�����쏢����½�������������¼«�����²½���·������¹��ԏ�𡯏����� ruby library��¡�����𡯏��Ð������������������������\��\���\»\¹��������돢돫�����µ½��ҏ�������������� Ruby library ��¡µ������ Perl ����������ޏ��¾������ WWW::Mechanize ���̏���������¡��½������������ ruby �����������������������������ď��폢�����돪������ӏ��������������Ï�������¡�Web Test \���\������¼\���\������¼\�������������ޏ�����������µ����½������»�����������������������·���¹½�����������̏�¡��½������������\��\���\��\���\������������«������»�����𡯏����������������Ï�����\���\���\���\���\���²½���·�����ď���������������¹�����𡯏��������Ð���������������«��������¡�http://example.com ������\��\���\»\¹ ��� 1�����ӏ����䏢���� form ������³���\���\���¼\���\��������� foo, bar, baz �����ҏ����Џ������·������ submit ��� \��⏢�¼\��������������� "foo" �����ҡ���������� link �����ҏ���µ��я��·������\���\���\���\��� ��� \��⏢�¼\���������¼���������
2 WWW::Mechanize alike in ruby ������»��������������� mixi ������\��\���\»\¹
mixi ������ login ���·�����ď��������������·������������µ������ URL �돫�����������ҏ�������������������������¡�돪�²¼���������������Ï��������¹���������Ð��������������¡�require 'mechanize' username = '[email protected]' password = 'foobarbaz' agent = WWW::Mechanize.new {|a| a.log = Logger.new('access.log') } page = agent.get('http://mixi.jp/') form = page.forms[0] form.fields.find {|f| f.name == 'email'}.value = username form.fields.find {|f| f.name == 'password'}.value = password form.fields.find {|f| f.name == 'next_url'}.value = '/home.pl' page = agent.submit(form, form.buttons.first) if /url=([^"])"/ =~ page.body link = 'http://mixi.jp' + $1.to_s agent.get(link) end diarylist = agent.get('http://mixi.jp/new_friend_diary.pl') diarylist.links.each do |link| diaryurl = link.href # => 'view_diary.pl?id=12345&owner_id=2345' end�����������������������ġ�����������¡�page.body ���� html text ������»�����������������������»��⏪�я�������돫����������������ҏ��·�����ď�����������������������³������������»��������Ï�����������������¡�
3 mechanize.rb ������ net/smtp �����ҏ����»��Џ����� require ��� \���\���\���\���
���·���«���·�����������̏��������������ޏ��«������»�ߏ����������ď����������㏪�����������������������··��������������������Ï��«�����Ԣ����¹������̏�¡�mechanize ������»��������������������� net/smtp ������»��������Ï�������¡�Net::SMTP.start(host) ... ����/usr/lib/ruby/1.8/net/smtp.rb:393:in `do_start': private method `open' called for Net::InternetMessageIO:Class (NoMethodError)������������������������������\��\������¼�����ҏ����������������я���������������¡�net/smtp ���������Ώ�����»���������������¾���¹��������������������я�����������������������������������¡�mechanize ������ require ���¹���������������������������¹���������������������������������Ï����� (���µ������������������½��Џ��������������������������̏��������»��Ώ�����������������������ď��»��С���ӏ��«���«�����������ď���)��¡�
����������㏢���������Ώ�������������¡�mechanize ������������ mechanize/net-overrides/protocols.rb ������������������\���\���\���\������̏���������¡�mechanize.rb ��������������̏����� load-path ������¾���µ�����ҏ�����²������·��������������������¡��³������������������������½������µ������ net/protocols.rb ����¾���½��Џ�����µ�����������������쏢������¡�Net::InternetMessageIO �����ҏ�������������돪�����������돩�¼��������؏��·��������������������������\���\���\���\����������µ���������·��������¡����������Ï�����������·Ð²������¼�����ӏ������������������������������������Ï��������̏�¡�¾��������������������������� ruby1.8.2 ����������½��� net/protocols ����������������¹������������»������������ mechanize ����������돢돫��·��������������¡�·�������� system ���«������ mailx �����ҏ����������ӏ����������������Ï�������²�����ҏ��������������������·�����������������ď��̏�¡��³�����я���������������������²���·������¹�������������̏��µ���·�����������я�����������������? ��²���������������³���������������������������� net/smtp ���������ޏ�������������������¡�net/protocols ������»��������Ï��¾������ net/* \���\���\���\���\����������ޏ�������������¼��؏��ޏ����������������������Ï��·��¡�load-path �����ҏ���������������������������������������������̏��\�����������Џ��·���½�����Ï�¡�mechanize �����������ԏ����� require ������ Net::* �����ҏ�ġ����¹���������������������Ð��������²�����������������������������������Ï��«��¡�
mechanize���µ�����������������������Ώ��������·�����ď��̏�¡��Џ��·���������������¹��������¡�