リアルタイムの動的なのセレン爬虫類クロールの勃発

インポートのCSV 
インポートselenium.webdriver
selenium.webdriver.chrome.optionsからは、オプションのインポート

:クラススパイダー()
:DEF get_msg(自己、URL)
グローバルtimeNum、provinceDic
#无窗口弹出操作
オプション=オプション()
'(options.add_argumentを-ヘッドレス')
options.add_argument(' -無効-GPU ')
ドライバ= selenium.webdriver.Chrome(オプション=オプション)
driver.get(URL)
timeNum = driver.find_element_by_xpath(' // * [ID = "チャート" @ ] / DIV [2] /スパン[1] ')。テキスト#实时
icbar_confirm = driver.find_element_by_xpath(' // * [] ID = "表" @ / DIV [3] / DIV [1] / DIV [1] 「)の.text#全国确诊数
icbar_suspect = driver.find_element_by_xpath( '// * [テキスト#1 [3] / DIV [2] / DIV [1] / DIV ID = "チャート" @]') が疑われる場合の数
icbar_cure = driver.find_element_by_xpath(「// * [ID = "チャート" @ / DIV [3] / DIV] [3] / DIV [1] ')。テキスト#の番号硬化
icbar_dead = driver.find_element_by_xpath(' // * [ ID = "チャート" @] / 。DIV [3] / DIV [ 4] / DIV [1]「)テキスト位の死亡が
印刷(「{} \ N国立診断:{} \ nが疑われる場合:{} \ n個硬化:{} \ N死番号:{} \ N - 」フォーマット(timeNum、icbar_confirm、icbar_cure、icbar_dead、icbar_suspect))
place_current = driver.find_elements_by_css_selector( 'DIV [クラス= "現在の場所"]')#データ湖北
場所= driver.find_elements_by_css_selector( 'DIV [クラス= "場所" ]')#の他の地方でのデータ
place_ = driver.find_elements_by_css_selector(「divの[クラス = "場所「]「)データの#他の地方
place_no_sharp = driver.find_elements_by_css_selector( "DIV [クラス = '場所無鋭い']")# 自律データ
TPLT =「{0:{4 } <10} \ T {1:{4} <15} \ T { 2:4} {<15} \ T {3:4} {<15} "
(印刷tplt.format("中国""確認の数""硬化の数""死者」、CHR(12288)) + "\ N-")
辞書のキーは、州の名前で確立し、地域の特定のデータ値
provinceDic = dictの()
provinceDic [ "国立"] = [ "国"、icbar_confirm、icbar_cure、icbar_dead、icbar_suspect]
場所-place_current =データ収集のすべての州の+場所+ place_ + place_no_sharp#リスト
Places-でプレイスの:
#印刷(place.text)
名= place.find_element_by_css_selector( "スパン[クラス= 'infoName']")。テキスト
確認= place.find_element_by_css_selector(「スパン[クラス= 『確認』]スパン」)のテキスト。
試してみてください。
癒す= place.find_element_by_css_selector( "スパン[クラス= '癒し']スパン")のテキスト。
除く:
。癒す= place.find_element_by_css_selector("スパン[クラス='非表示を癒す']スパン")のテキスト
試み:
死ん= place.find_element_by_css_selector 。( "スパン[クラス= '死']スパン")のテキスト
を除い:
。死ん= place.find_element_by_css_selector("スパン[クラス='死ん隠す']スパン")のテキスト
印刷(tplt.format(名前、確認、癒し、死んだ、CHR(12288)))
provinceDic [名] = [名前、確認、癒し、死者]
デフsave_data_as_csv(自己、ファイル名、データリスト):
ファイル名= "_"(time.splitを(参加。 ":"))
ファイル名= filename.replace( ":"、 "")#は、時間を調整します
開く(ファイル名+ "CSV"、 "改行= "W"")Fとして:
ライター= csv.writer(F)
writer.writerow([ "地区"、 "确诊人数"、 "治愈人数"、「死亡人数" "疑似病例"])
のための私のDataList内:
writer.writerow(I)
f.close()
デフメイン(自己):
URL =" https://news.qq.com/zt2020/page/feiyanを。 HTM」
self.get_msg(URL)
self.save_data_as_csv(timeNum、provinceDic.values())


ビリー=蜘蛛()
billie.main()

 

おすすめ

転載: www.cnblogs.com/billie52707/p/12238787.html