爬虫類パイソンの知人:クロール正規表現使用「embarrassments百科事典を - のテキストバージョン」データ知人のpython爬虫類のウェブ:「古代の詩」Webデータをクロール正規表現を使用します

爬虫類パイソンの知人:「古代の詩」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()の
embarrassments百科事典(テキスト)データページをクロール

結果:

 

おすすめ

転載: www.cnblogs.com/simple-li/p/11291525.html