3つのプラットフォーム: 中国大学mooc https://www.icourse163.org/university/view/all.htm 学校オンラインhttp://www.xuetangx.com/partners 良い大学オンラインhttps://www.cnmooc.org/学校/ビュー/ list.mooc
アイデア:3つのソースから大学名を取得し、洗浄し、デエンファシスした後、統計は、結果を得ます
手順:
まず、データ爬虫類が何を得るために使用する他に考えますか?
(爬虫類は手でそれをしないために、それが行うには、マニュアルの使用クローラには適していません)
手動完了のために適した:一回は、データの数が少ない複雑ではありません
完成爬虫類用:定期的な収集、複数のサイトをクロールし、複雑であるが、通常のデータ構造
本明細書に記載の手動方法を使用して、
中国の大学のmoocの場合:
テキストの対応するHTMLコードを保存し、icourses.txtでファイル保存
の書き込みicourses.pyを、情報を抽出する大学、スペースで区切られた出力大学名を含みます
1 Fiの=開き(" D:/icourses.txt "、" R&LT " ) 2のLS = [] 3。 ためのラインでFiの: 4 IF " Altキー" でライン: 5 ls_tempのline.split =(' " ' ) 。6 のuName ls_tempは= [-2 ] 7 のIF 「学生」 では、uname: #は「学生のためのモデリング組織委員会の国立数学コンテスト」同様の機関を除く 。8 続行 9 のIF " 大学" でのuName または " 研究所" でのuName: 10 ls.append(のuName) 。11 str_ls = " " .join(LS) 12は プリント(str_ls) #参加形式の文字列 13は、 14 プリント(LEN(LS)) 15 Fiの.close() 16結果は:287
学校オンラインの場合:
私たちの方法について:
直接xuetangx.txtファイルに格納されているブラウザのページのコピーコンテンツに
書き込みコードxuetangx.py、大学の大学情報、スペースで区切られた出力名抽出
で、この時点でファイルを情報を非常に混乱し、重複した多くの情報が含まれています
1 Fiの=開き(" :/xuetangx.txt D "、" R&LT " ) 2 U-SET =() #も中に添加しない繰り返し添加がない場合でも、空のセット# 3 のためのラインでFiの: 4 IF " ムークラス" で行目: 5 続行 6の IF " 大学" でのラインや " 大学" で行目: 7 U.add(line.strip(" N-を\ " )) 8 印刷(" 「 .Join(U-)) #スペースで区切られた文字列を与える 。9 印刷(LEN(U-)) 10 fi.close() 。11は、結果は次のとおりです。166 12は、 データは非常に通常のファイル(HTML劣るダイレクトコピーではないので、ということに留意すべきで、ここでコードの仕様)、 13 ので、私たちはもはやリストを使用することはできませんが、機能を再設定するために使用する必要があります
良い大学オンラインの場合:
直接cnmooc.txtファイルに格納されているブラウザのページのコピーコンテンツにおける
書き込みコードcnmooc.py、大学の情報、スペースで区切られた出力大学名を抽出
1 Fiの=開き(" D:/cnmooc.txt "、" R&LT "、エンコード= " UTF-8 " ) 2 U-SET =() #空集合#もに添加しない繰り返し添加がない場合でも、 3。 ためのラインでFiの: 4 5 IF " 大学" でのラインや " 大学" で行目: 6 U.add(line.strip(" N- \ " )) 7 印刷(" "。参加(U-)) #はスペースで区切られた文字列を与えます 8 印刷(LEN(U-)) 9。 fi.close() 10の結果:101
問題を解決するために:、統計の最終結果プログラムの結果をまとめる
結果の概要
手動および自動化されたのか?
プログラムは、わずか数回実行し、あなただけの罰金を行うための完璧な、直接労務を追求することができない、と考えるならば
、我々は良いよりも少し害である、ちょうど完全に自動に、非常に複雑な手順になりますならば、
我々は最初の3つの手順のマニュアルになります結果は、入力としてプログラムにコピーされます。
1枚の = IC " 北京は... " 2 XT = " 物理の中国の起業家大学、北京大学... " 3センチ= " 清華大学... " 4 Uは= (SET)を 5 6 Uは| = SET(IC。スプリット()) #のリストを収集し、変換ICになり、Uまたは下 7。 U | =セット(xt.split()) #のリストを収集し、変換ICになり、Uまたは下 8。 U | =セット(cm.split()) #リストICを変換して設定するようになり、U又は低級 。9 10のLS =リスト(U) #U-にリストのセット(これはそれを並べ替えを与えることである) 。11の LS。ソート() #注文 12 を印刷します(" 「.Join(LS)) 13 印刷(LEN(LS)) 14結果:352注:結果について質問がある場合は、手動で審査することができますが、削除することができます。
この例は主にタイムアウトテキストデータ型に関するさまざまな操作の理解を通じて、
統計、ああ、ああ、重複排除、テキストデータ等の動作を含みます。