爬虫類小さな練習、オブジェクト指向と関数型プログラミング、IMDBのクロール

1クラスつかみ:
 2 DEF __init__ (自己):
 範囲内のI 3(0、10 
 = F 4 self.url」https://movie.douban.com/top250?start={25*i}&filter= " 
 5 self.html = urlopen(self.url).read()。デコード() 6 self.htmlobj = et.HTML(self.html) 7 self.res = self.htmlobj.xpath(" //のdiv [@クラス= 'HD'] / A /スパン[@クラス= 'タイトル'] [1] /テキスト() ")#电影名 8 self.dicr = self.htmlobj.xpath(" // divの[@class =」 BD '] / P [1] /テキスト() ")#导演 9 self.cri = self.htmlobj.xpath(" // P [@class ='引用符'] /スパン//テキスト() ")#介绍 10 self.score = self.htmlobj.xpath(」// divの[@class = 'スター'] /スパン[@クラス= 'rating_num'] /テキスト() ")#评分 11プリント(( ''。(self.dicr)に参加)。ストリップ()。( ' ' '').replace( '/'、 '').splitを('')を置き換える[0:1】)12 DEF のgetName(自己):13のパス14 DEF GETDIR(自己):15のパス16 DEF getScore(自己):17のパス18 DEF getCri(自己):19パス20 21 DEF 実行(自己):22、WB = xlwt .Workbook(エンコード= 'UTF-8' )23、WS = wb.add_sheet( '豆瓣电影' 範囲のiについて)、24(0,10 ):25 jについての範囲(0、LEN(self.res))。 26 ws.write(I、J * 4、( '' .join(self.res [J]))。ストリップ()。(置き換える」」、 '').replace( '/'を、 '' ))27 ws.write(I、4 * jの+ 1は、( '' .join(self.dicr [J * 2]))。ストリップ()。置き換える( '/'、 '').split( '')[ 0:1 ])28トライ:29 ws.write(I、4 * jを+ 2、( '' .join(self.cri [J]))ストリップ())を除く30 :31 ws.write(I、 4 * J + 2、 '没有介绍')32 ws.write(I、4 * jの+ 3、( '' .join(self.score [J]))ストリップ()。 .replace(」 ' '').replace( '/'、 '' ))33 wb.save(' ./豆瓣电影/movie.xls' )34 35、R = 把握()36 r.run()37 38 39 40デフリーダー():41、WB = xlwt.Workbook(エンコード= 'UTF-8' )42、WS = wb.add_sheet( '豆瓣电影' )43 Iの範囲内(0、10のために):44 URL = F "https://movie.douban.com/top250?start={25*i}&filter=" 45 HTML = urlopen(URL).read()。(復号化)46 htmlobj =et.HTML(HTML)47 RES = htmlobj.xpath( "// divの[@class = 'HD'] / A /スパン[@クラス= 'タイトル'] [1] /テキスト()")#电影48名DICR = htmlobj.xpath( "// divの[@class = 'BD'] / P [1] /テキスト()")#导演49 CRI = htmlobj.xpath( "// P [@class = '引用符'] /スパン//テキスト() ")#50得点介绍= htmlobj.xpath(" // divの[@class = 'スター'] /スパン/テキスト([クラス= 'rating_num' @]) ")#评分51について内J 範囲(0、LEN(RES)):52、D =(( '「、 '').replaceを( '/''。。.join(DICRは、[J * 2]))ストリップ()(置き換えます」、 ''(主'))。見つける' )53 ws.write(I、J * 4、( '' .join(RES [j]を))。ストリップ()。「(置き換え」、 '')。交換してください( '/'、 '' ))54 ws.write(I、4 * jの+ 1、(( '' .join(DICR [J * 2]))。ストリップ()。( '「、'」)を置き換えます。交換してください( '/'、 ''))[0:D])55トライ:56 ws.write(iは、4 *はJ + 2、( '' )(CRI [J]).joinストリップ())を除く57 :58 ws.write(I 、4 * jの+ 2、 '没有介绍')59 ws.write(I、J + *。4. 3、( '' .join(スコア[J]))。ストリップ()。交換( ''、 '').replace( '/'、 '' ))60 wb.save(」のIMDB /movie.xls ./ )61は62リーダー()は
、データがテーブルとして記憶されているクロールされ
、単純な文字列にデータを変換する.join 『』()、特別の除去データの閲覧を容易にする文字とスペース、
さらには、余分な変換を必要としない、取得したXPathは、リストは方法で操作できるリストであることに留意すべきです

 

おすすめ

転載: www.cnblogs.com/superSmall/p/11502872.html