主な用途要求ライブラリーと今日ホットリストbeautifulSoupデータをクロールライブラリ。
特定のコードの実装:
1つの インポート要求 2 から BS4のインポートBeautifulSoup 3 インポート時間 4頭の インポートパンダ 5 インポート再 6 7 DEF :get_html(URL) 8つの ヘッダー= { ' ユーザーエージェント':' のAppleWebKit /のMozilla / 5.0(; Win64のx64のWindows NTの10.0) 537.36(KHTML、ヤモリ等)クローム/ 80.0.3987.132サファリ/ 537.36 ' } 9 RESP = requests.get(URL、ヘッダー= ヘッダ) 10 リターンresp.text 11 12 13 DEF get_data(HTML): 14 スープ= BeautifulSoup(HTML、' html.parser ' ) 15 ノード= soup.find_all(' DIV '、class_が= ' CC-CD ' ) 16 リターンノード 17 18 19 DEF get_node_data(DF、ノード): 20 今= INT(time.time()) 21 のためのノードでノード: 22 ソース= node.find(' DIV '、class_が= ' CC-CD-LB ').text.strip() 23の メッセージ= node.find(' DIV '、class_が= ' CC-CD-CB-Lナノコンテンツ').find_all(' ' ) 24 のためのメッセージにメッセージ: 25 コンテンツ=メッセージ.find(' スパン'、class_が= ' T ' ).text.strip() 26 であれば、ソース== ' 微信' : 27 REG = ' 「?+」(。+)' 28 コンテンツ= re.findall(REG、コンテンツ)[0] 29 30 なら df.empty 又は DF [df.content == コンテンツ] .empty: 31件の データ= { 32 ' コンテンツ' :[コンテンツ]、 33 ' URL ':[メッセージ【' HREF ' ]]、 34 ' 源' :[ソース]、 35 ' START_TIME ' :[今]、 36 ' END_TIME ' :[今] 37 } 38 39 アイテム=pandas.DataFrame(データ) 40 DF = pandas.concat([DF、項目]、ignore_index = TRUE) 41 42 他: 43 インデックス= DF [df.content == コンテンツ] .INDEX [0] 44 df.at [インデックス、' END_TIME ' ] = 今 45 46 リターンDF 47 48 49 URL = ' https://tophub.today ' 50 HTML = get_html(URL) 51件のデータ= get_data(HTML) 52 RES = pandas.read_excel(「今日热榜.xlsx' ) 53は、 RES = (RES、データ)get_node_data 54は res.to_excel(' 今日のビルボードの.xlsx ')