爬虫類パイソンの知人:「古代の詩」Webデータのクロール正規表現使用して 兄弟の論文を。
次のように詳細なコードは次のとおりです。
#!/ユーザー/ binにENV Pythonの #1 著者:シンプル・サー #時間:2019年8月1日午後02時50 #クロールembarrassments単語(テキスト)データ・ページの 読み込み要求、再 URLHead = " HTTPS://www.qiushibaike。 COM ' DEF getHtml(URL): ヘッダー = { ' User--エージェント':' のMozilla / 5.0(Windows NTの10.0; Win64の、x64-)のAppleWebKit / 537.36(KHTML、ヤモリ等)クローム/ 75.0.3770.100サファリ/ 537.36 ' } RESPONS requests.get =(URL、ヘッダ= ヘッダ) HTML = respons.text リターンHTMLの DEFのgetInfos(URL): HTML = getHtml(URL) の作者で = re.findall(R '?<H2>のn \ - (*)のn \ - </ H2> '、HTML、re.DOTALL) #作者を取得 author_sex_lvl = re.findall(R ' <DIV CLASS = "articleGender(。*?)のアイコン">(\ D *?)</ DIV> '、HTML、re.DOTALL) #の性別の取得、クラス author_sex = [] #の性別 = [] author_lvl #のレベルの ための I における:author_sex_lvl author_sex.append(I [0]) author_lvl。追加(I [ 1 ]) contentHerf= re.findall(R ' <HREF = "(/記事*)。?" *クラス= "contentHerf"。?'、HTML、re.DOTALL)[1] #1 获取「详细页」HREF CONT = [ ] #内容 について contentUrl でcontentHerf: contentHerf_all = URLHead + contentUrl contentHtml = getHtml(contentHerf_all) #详细页htmlの 内容= re.findall(R '?<DIV CLASS = "コンテンツを">(*)</ DIV> ' 、 contentHtml、re.DOTALL) content_br = re.sub(R ' <BR/> '、'' 、 コンテンツ[0]) #</ BR>タグを除く コンテンツ= re.sub(R&LT ' \\ XA0 '、'' 、content_br) cont.append(コンテンツ) に関する情報 = [] のための I におけるZIP(著者、author_sex、author_lvl、CONT): 著者、性別、LVL、テキスト = I インフォメーション = { ' OF ' :著者、 ' 性別' :性別、 ' レベル' :LVL、 ' コンテンツ' :テキスト } infos.append(情報) 返却に関する情報を DEF メイン(): ページ = INT(INPUT(' あなたはN- \データの最初の数ページを取得したい?' )) のために I における範囲(1、ページ+ 1 ): URL = " HTTPS://www.qiushibaike .COM /テキスト/ページ/ {} ' .format(I) を印刷(' ページデータ{}にクロールされている:' .format(I)) のために T でgetInfos(URL): 印刷(T) を印刷(' 第一{}クロールページデータが完成する。' .format(I)) を印刷('すべてのデータは、クロール完了しました!' ) IF __name__ == ' __main__ " : main()の
結果: