Pythonの爬虫類は、価格がデータを検索クロール

  B2Bのウェブサイトの企業情報やデータストレージのニーズの生産必要があるため。だから、ロックの目は、企業データ、騒ぎ、オープン乾燥を検索します! 

  

# - * -コーディング-8 - * - 
インポート要求は
lxmlのインポート
インポートsysを
BS4インポートBeautifulSoupから
輸入xlwt 
インポート時の
インポートurllibは
 
デフクロー(URL、key_wordを、X):
    USER_AGENT =「のMozilla / 5.0(Windows NTの6.1; Win64の、x64の; RV:56.0)のGecko / 20100101 Firefoxの/ 56.0' 
#場合のx == 0: 再= 'http://www.qichacha.com/search?key='+key_word 
#他に:
#再=' httpsを:/ /www.qichacha.com/search?key={}#p:{}&'.format(key_word,x-1)
    再= r'https://www.qichacha.com/searchキー= '+ key_word?
    ヘッダは= { 
            'ホスト': 'www.qichacha.com'、 
            '接続': 'キープアライブ'、
            '承諾':r'text / HTML、* / *。= 0.01' Q、 
            'X-要求-With-':'のXMLHttpRequest ' 
            ' User--エージェント「:r'Mozilla / 5.0(Windows NTの10.0; WOW64)のAppleWebKit /537.36(KHTML、ヤモリ等)クローム/ 69.0.3497.100サファリ/ 537.36 ' 
            'リファラー: 'RE 
            ':' GZIP、DEFLATE、BR'、受け入れエンコード' 
            '言語を受け入れ':' CN-ZH、ZH ; Q = 0.9 ' 
            'クッキー':ここにあなたのcookiexxxxxxxにここにあなたのcookiexxxxxxxxxにここにあなたのcookiexxxxxxxxにr'xxxxxxxxx'、
            } 
 
    試し:
        レスポンス= requests.get(URL、ヘッダ=ヘッダ)
        IFレスポンス= 200は.status_code :!ある
            response.encoding = 'UTF-8'
            印刷(response.status_code)
            印刷( 'ERROR')     ) 
        スープ= BeautifulSoup(response.text、 'lxmlの')
    の例外を除いて:
        印刷( '要求をしない、この半分の警備員が何を見ることです???')
    試してみてください。
        com_all_info = soup.find_all(クラス_ = 'm_srchList')[0] .tbody 
        com_all_info_array = com_all_info .Select( 'TR')
        印刷( 'Excelを開いていない、データをクロールを開始') 
        :範囲(0、LEN(com_all_info_array))におけるIのために
#してみてください。
                temp_g_name = com_all_info_array [I] .Select( 'TD') [2] .select(」。ma_h1 #の.text ')[0] 取得企業名
                temp_g_tag = com_all_info_array [I] .select( 'TD')[2] .select('。タグを検索)[0]。 買収会社のラベルテキスト#
                temp_r_name = com_all_info_array [i]は.select( 'TD')[2] .select( 'p'は)[0]#は.a.text 法的名前を取得しました
                temp_g_money = com_all_info_array [I] .select( 'TD')[2] .select( 'P')[0] .select( 'スパン')[0] .text.strip( ' 登録資本金:')を得る登録#資本
                temp_g_date = com_all_info_array [I] .select( 'TD')[2] .select( 'P')[0] .select( 'スパン')[1] .text.strip( ' 設立:')#取得会社が登録
                temp_r_email = com_all_info_array [I] .select( 'TD')[2] .select( 'P')[1] .text.split( 'の\ n')[1] .strip()。ストリップ( ' Eメール: ')#メールで合法的に取得
                temp_r_phone = com_all_info_array [I] .Select(' TD ')[2] .Select(' P '[1]).Select(' M-L「)[0]の.text ..ストリップ( '電話番号:')法的取得#電話番号
                temp_g_addr = com_all_info_array [I] .select( 'TD')[2] .select( 'P')[2] .text.strip()ストリップ( ' アドレス: ")#ゲット住所
                temp_g_state = com_all_info_array [I] .select( 'TD')[3] .select(」。nstatus.text成功-lt.ml-XS')[0] .text.strip()# ステータス取得 
    グローバルg_date_list
                  
                g_name_list.append(temp_g_name)
                g_tag_list.append(temp_g_tag)
                r_name_listを。追加(temp_r_name) 
                g_money_list.append(temp_g_money)
                g_date_list.append(temp_g_date)
                r_email_list.append(temp_r_email)
                r_phone_list.append(temp_r_phone)
                g_addr_list.append(temp_g_addr)
                g_state_list.append(temp_g_state)
                 
例外を除いて#: 印刷( '错误!')
    の例外を除い:
        プリント( '好像被拒绝访问了呢...请稍后再试叭... ')
         
であれば__name__ == '__main__':
    グローバルg_name_list 
    グローバルg_tag_list 
    グローバルr_name_list 
    グローバルg_money_list 
    グローバルr_email_list 
    グローバルr_phone_list 
    グローバルg_addr_list 
    グローバルg_state_listの
     
    g_name_list = []
    = g_tag_list [] 
    r_name_list = [] 
    g_money_list = [] 
    g_date_list = [] 
    r_email_list = [] 
    r_phone_list = [] 
    g_addr_list = [] 
    g_state_list = [] 
 
    key_word INPUT =( '検索したいキーワードを入力してください:')
    NUM = INT(入力(「検索したい番号を入力してください:」))+ 1 
    SLEEP_TIME = INT(入力(「各検索の間の遅延の秒数を入力してください:」))
     
    key_word = urllib.parse.quote(key_word)
     
    を印刷( '検索、お待ちください') 
     
    :範囲-でX(1、NUM)用の
        URL = r'https:?。//www.qichacha.com/search_indexキー= {} = 1&p型ajaxflag&= {}&「形式(key_word、X-)
        S1 =クロー(URL、key_word、X-)
        time.sleep(SLEEP_TIME)
    ワークブック= xlwt.Workbook() 
    #は、シートオブジェクトを作成し、新しいシート 
    シート1 = workbook.add_sheet( '法人検索アップデータ'、cell_overwrite_ok = TRUE) 
    #スタイルを得意--- ---セット
    #初期化スタイル
    スタイル= xlwt.XFStyle() 
    #フォントスタイルの作成
    フォント= xlwtを.font()
    font.name = 'Arialの' 
#。Font.Bold太字= Trueの#の
    #はフォント設定
    style.font =フォント
    スタイル書き込みデータ使用して#を
    印刷する( 'データが格納されている、Excelを開いていない')
    シートへ#書き込みデータ
    NAME_LIST = [「会社名」、「会社のラベル」、「法定法人」、「登録資本」、「日設立の」、「企業の電子メール」、「企業の電話」、「住所」、」会社のステータス「] 
    の範囲でCC(0、LEN(NAME_LIST))について:
        sheet1.write(0、CC、NAME_LIST [CC]、スタイル)
    範囲(0、LEN(g_name_list))におけるIのために:
        プリント(g_name_list [i])と
        sheet1.write(私はg_name_list、1,0 + [ I]、スタイル)#の会社名
        sheet1.write(私はg_tag_list、1,1 + [ I]、スタイル)#関連会社のラベル
        sheet1.write(私は、1,2 + r_name_list [i]は、スタイル)#法定法人
        sheet1.write(私はg_money_list、1,3 + [ I]、スタイル)# 登録資本
        sheet1.write(私はg_date_list [、1,4 + i]を、スタイル)#の設立の日
        sheet1.write(私はr_email_list [、1,5 + #i]を、スタイル) 企業のメールボックス
        sheet1.write(私はr_phone_list、1,6 + [ I]、スタイル)#の電話会社の
        sheet1.write(私は、1,7 + g_addr_list [i]は、スタイル)#アドレス
        sheet1.write(私は+ 1,8、g_state_list [ i]は、スタイル)#の会社の状態
    #がカバーに直接、同じ名前で保存されたExcelファイル
    workbook.save(R「Dの:\ wyy -qcc - 。 "time.strftime +(" M - %%% Y-H-D - %%% M-S "time.localtime())+" XLS「)
    を印刷( '〜保存されています')

  

おすすめ

転載: www.cnblogs.com/68xi/p/11206584.html