ネットワークからのテキストと画像のテキストは、だけでなく、任意の商業目的のために、元の作者に属し、交換を学ぶために、どんな質問ならば、治療のためにお問い合わせください。
著者:TinaLY
PS:必要なPythonの学習教材は、小さなパートナーに追加することができた場合は、自分自身を取得するには、以下のリンクをクリックしてください
http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef
多くのオンラインチュートリアルはクロールが、一般的に2つの問題があります。
まず:彼はバグをデバッグの多くが発生します、それは一般的に、それはかなりクレイジーです難しいコードをデバッグするために使用することはできません。
これは、クロールデータの少量を提供することができるオープンな限りコードを開くために、自分自身の経験に基づいています。
-
構造、主にセレンをクロールすることで、ページが継続的にオープンになります。
-
コードは、地区の変更サイクルに精通しても後済南市の場合は、小規模な試験を、単一の管理区域のために取得しました。
コードは以下の通りであります:
キーパッケージ:
1 からセレンインポートwebdriverを 2 から urllibはインポート要求、解析 3 から selenium.common.exceptionsは、インポートはNoSuchElementExceptionを
定義されたパラメータ(高い道徳APIの最初の3行は、4行目は都市のクロールされ、その後、一般的なWebリンクが存在するであろう座標取得を得るために使用されます)。
1 amap_web_key = ' 你的キー' 2 poi_search_url = " http://restapi.amap.com/v3/place/text " 3 poi_boundary_url = " https://ditu.amap.com/detail/get/detail " 4都市= 「済南」
キーコード:
1つのヘッダー= { ' User--エージェント':' のMozilla / 5.0(Windows NTの10.0; WOW64)のAppleWebKit / 537.36(KHTML、ヤモリ等)クローム/ 29.0.1547.57サファリ/ 537.36 ' } 2 DRIVER1 = webdriver.Chrome() 。3たpageID 1 = 4。 しばらく(たpageID <= ' ページ番号'):// ページ番号ここでゾーンを入力後に表示されるページの数を指す 。5 allarray = [] 。6 プリント(' たpageID = ' 、pageidに) 。7 URL = ' https://jn.lianjia.com/xiaoqu/pingyin/pg " +STR(pageidに) 8 driver1.get(URL) 9 driver1.implicitly_wait(5 ) 10 house_list = driver1.find_elements_by_class_name(' IMG ' ) 11 のための I における範囲(house_list。__len__ ()): 12 time.sleep(2 ) 13 temparray = [] 14 detailurl = house_list [I] .get_attribute(' のhref ' ) 15 プリント(I、' detailurl ' 、detailurl) 16 ドライバ=webdriver.Chrome() 。17 driver.get(detailurl) 18が 試み: 19 housename = driver.find_element_by_class_name(' detailTitle ' の.text) 20れる 。価格driver.find_element_by_class_name =(' xiaoquUnitPrice ' の.text) 21は = driver.find_elements_by_class_name(xiaoquinfo ' xiaoquInfoContent ' ) 22 #[床面積、面積を構築し、床面積比、緑色レート、駐車スペース、BANの総数、総世帯数、不動産会社、不動産コスト、プロパティ記述、フロア条件] 23 xiaoquage = xiaoquinfo [0]の.text #建物の 24 = xiaoquinfo jianzhuleixing [1]の.text #構築タイプ 25 wuyefei = xiaoquinfo [2]の.text #性電荷 26 dongshu = xiaoquinfo [5]の.text #総BAN 27 Hushu = xiaoquinfo [6]の.text #家の総数は 28 TempArray .append(housename) 29 temparray.append(価格) 30 temparray.append(jianzhuleixing) #の世帯 31 temparray.append(wuyefei) #のプロパティコスト 32 temparray.append(dongshu) #1 体積比 33 temparray.append(Hushu) #緑率 34がある #LOCATION = getpoi_page(TempArray [0])//高デとのAPIコールが機能座標取得 35 #をハイ・デ・クエリー座標で 36は // 究極の目標細胞は、秋にマッピングされます高い道徳オープンAPIが使用可能な、点の座標を得ることが必要であるが、 37 // クエリの限定された数に起因するキーは、エラーの中央を防止するためには、最初のセットアップ後に、全てのハウジングのデータことが推奨される 38 // の検索を座標統一します初心者は、簡単にすべての主要なを達成するために! 39 temparray.append(' 0 ' ) 40 temparray.append(' 0 ' ) 41は、 #IF(LOCATION == ''): 42である # temparray.append( '0') 43である 。# temparray.append( '0') 44である #他: 45 #1 temparray.append(LOCATION [0]) 46は、 # ([1] LOCATION)temparray.append 47 #BREAK 48 #の印刷(TempArray) 49を 除いてはNoSuchElementException AS MSG: 50 // など淘宝網、アリババと他のHTMLタグをページとして、けれども、非常に、非常に重要な機能をスローされた例外は、統一フォーマットを持っている、 51 // しかし、経験豊富な子供の靴は常にあるだろうことを知っている必要があります例外はメカニズムが書くスローされた場合は、1つまたは2が日常、プレーされていない 52 // も、多くの場合、簡単に水泡に来て 53 #印刷(「第1」、私を、「セル・サーチ要素の故障」) 54 トライ: 55 housename = driver.find_element_by_class_name(' detailTitle ' の.text) 56は、価格= driver.find_element_by_css_selector(" [クラス= 'クリアxiaoquPrice'] " の.text) 57れる // 例外がスローされているので、見ることができ、比較価格の上価格タグ属性のための2つがあった 58 xiaoquinfo = driver.find_elements_by_class_name(「xiaoquInfoContent 」) 59 #[床面積、面積、床面積比、グリーン料金、駐車スペース、BANの合計数、世帯数の合計を構築し、不動産会社、不動産料、プロパティ記述、フロア条件] 60 xiaoquage = xiaoquinfo [0]の.text #の建物の 61 jianzhuleixing = xiaoquinfo [1]の.text #ビルタイプ 62 wuyefei = xiaoquinfo [2]の.text #のプロパティの料金 63 dongshu = xiaoquinfo [5]の.text #総BAN 64 Hushu = xiaoquinfo [6]の.text #家の総数 65 temparray.append(housename) 66 TempArray。アペンド(価格) 67 temparray.append(jianzhuleixing) #1 世帯 68 temparray.append(wuyefei) #のプロパティコスト 69 temparray.append(dongshu) #の体積比 70 temparray.append(Hushu) #緑色レート 71は temparray.append(' 0 ' ) 72 temparray.append(' 0 ' ) 73である 以外は:はNoSuchElementException AS MSG 74 プリント(" 両方のケースで見つけることができません" ) 75 allarray.append (TempArray) 76 driver.close() 77 text_save(allarray、' lianjia_fangwu.txt ' ) 78たpageIDの+。1 =