TA的每日心情 | 开心 2018-7-19 02:16 |
---|
签到天数: 20 天 [LV.4]偶尔看看III
|
如果不想要图片和链接的可以用我瞎写的ruby脚本。:lol * [2 m& }8 `6 ?$ B# a' ?) C: i5 s
max代表最大号,min是最小, 从1开始,每天想处理多少就处理多少,也可以放到服务器上全部处理成一个文件。
8 u8 h; B5 l% ^% m低网速情况的代码- require 'rubygems'
* Z, ]5 ^4 Z$ ~ |% d! Y - require 'hpricot'
3 s1 k! t3 E1 H/ o) f4 V - require 'open-uri'
$ r( {4 b, c# g3 |6 n* ~ - max=200
& l* U% ?. ]- P2 p# \5 I9 K" { - min=1! o6 c/ U( k/ g7 z% {
- dic=File.open("baidudic#{min}-#{max}.txt","a")
* U6 P; m# X$ p4 G+ h - while min<max+1 do ) \4 S N# y4 j. f4 x1 w5 J
- url = "http://baike.baidu.com/view/#{min}.htm"* n) Z9 y8 O/ m" U& y
- puts "#{url}"
/ [( e( g# y$ s. G( }# i, a$ ?" q - doc= Hpricot(open(url))
! Y# d! ]( ^4 O - title0= (doc/:title).inner_html
" T; B$ e& f- _6 z8 ~9 R; | - title=title0.split('_'); p, c, c7 u$ O4 K" E
- content= (doc/"#lemmaContent").inner_html
' @0 b; Y, t& {! o) H3 \. @ - temp=content.gsub(/<\/?[^>]*>/, "")$ z* h( S! }* k' b
- temp=temp.gsub(/编辑本段/, "")
- n& ~- A7 w6 u - dic.puts title[0]
4 ], N/ P4 ]# @ - dic.puts "原文链接:#{url}"0 A/ x* q9 l: M+ ]
- dic.puts temp) j6 Y, y0 B/ A w" N
- dic.puts "</>"
1 _. C0 D3 G/ m- b% t - puts "OK"- o, H% w4 D+ {3 Q
- min=min+1/ V ?2 U: |- Y. K' s1 G4 Y: S& {
- end7 q5 [" R$ V1 R8 v
- dic.close
& E3 I% V3 a2 J) M: U1 V* n
复制代码 高网速情况的代码- ! s. X" u5 ?1 }% j, L0 t
- # baidubaike 2 mdict by daming9 J7 Z! E0 [$ Y5 K. m4 X( Y
- # [email protected]" j( s( ~! I: K) D& e$ F1 x. {6 B
- require 'rubygems'; k, s# w& J! _1 ^
- require 'hpricot'4 l d% E. |5 z3 y1 e+ _
- require 'pathname'" Z2 e z" v2 r; F! C4 T8 ^
- require 'fileutils'1 o- q9 g7 J |0 \4 U
- require 'open-uri'
- V# f7 G0 g0 F' w - Maxn=20- r7 M5 o2 J6 r4 L& I
- max=1006 X1 C% D5 P+ h6 s
- min=16 Z( v- f- Y) A3 {1 G0 E. o" M( u2 O
- dic=File.open("baidudic#{min}-#{Maxn*max}.txt","a")
. H6 u2 ^, T; B2 f$ k3 m, f - for j in 0..(Maxn-1) do
u# V% _! k/ s# S7 V* f - FileUtils.makedirs("temp")* T% B9 @, m2 r: d# G7 S! `
- i=min7 y8 T, P- ?- i# I
- while i<max+1 do
! o0 J, T- k! G" q) H8 X, O, T - url = "http://baike.baidu.com/view/#{i+j*max}.htm"
" }, @" Y% Y& P0 ]2 G6 r3 T - puts "#{url}"
5 f& D- w6 J9 J0 D" t - data=open(url){|f|f.read} Q- O+ c$ }! h/ f! A8 _9 R/ r
- open("temp\\#{i}.htm","wb"){|f|f.write(data)}
8 N$ K1 S4 Y( g! h) q: W - puts "download"
) d7 z8 x& s* u7 Q - i=i+1/ S$ p& b1 ^9 H; J( d! U
- end
- d' Q' h8 I) P( Q2 F1 `6 y - i=min; E0 C. z6 Y$ _* |* Q
- while i<max+1 do
& k8 ?4 l' x0 v2 |7 z - puts "#{url}"# L |/ m% ^1 t ]
- url = "http://baike.baidu.com/view/#{i+j*max}.htm"' s* S; [+ ?) O# H5 o* V, ?
- doc = open("temp\\#{i}.htm") { |f| Hpricot(f) }! Y0 m/ O. O1 J% J
- title0= (doc/:title).inner_html
8 P: q' R5 n8 g( C1 o - title=title0.split('_')! N& W( N- \# I. g: q" i2 ?# a
- content= (doc/"#lemmaContent").inner_html
( ^4 c+ L9 t: ~8 D* M& h - temp=content.gsub(/<\/?[^>]*>/, "")& L" z1 m. y' E$ i7 L0 H
- temp=temp.gsub(/编辑本段/, "")) n8 z2 T9 G4 m, u6 a
- dic.puts title[0]" X+ }$ L& Q1 l7 B* |6 e
- dic.puts "原文链接:#{url}"
0 @5 A& c1 T- Q$ Y! D - dic.puts temp
( h. r( q/ d1 O; V - dic.puts "</>"
7 U5 V" K8 z! Y3 H2 J* I$ k3 E - puts "converted"
6 n- T2 w- P$ C - i=i+1
F, b1 x# ~5 E8 S. P - end6 }& {$ r; c n" e. m% O3 E
- dir = Pathname.new("temp")
7 [2 ^$ [& n" Q; P - dir.rmtree
, {9 w# s) W9 m# E - puts "cache cleaned"7 p+ ^4 } Y6 u
- end/ ]4 k( `0 @+ z, U1 c- {% _/ d2 T
- dic.close
* y# g# k* j- f4 }( z3 k: \
复制代码 windows上ruby地址+ T3 X. V! A6 O+ I% u
http://rubyforge.org/frs/download.php/29263/ruby186-26.exe
0 j1 N w, c0 o; q) }5 Jlinux这个不是问题8 w& h9 `9 J' F" N4 M# {
4 _) _( k! f1 O9 r! q
一次不要开多个窗口,百度会封
2 M% z# j# C. _+ Q8 f2 d8 w2 N( @/ Z3 H" H" Z E; B0 P) b4 ~/ ]9 t2 ?
[ 本帖最后由 发哥 于 2008-10-15 21:12 编辑 ] |
评分
-
1
查看全部评分
-
|