初心者Pythonのチュートリアルでは、ホームネットワークのチェーンをクロール

序文

ネットワークからのテキストと画像のテキストは、だけでなく、任意の商業目的のために、元の作者に属し、交換を学ぶために、どんな質問ならば、治療のためにお問い合わせください。

著者: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 =

 

おすすめ

転載: www.cnblogs.com/Qqun821460695/p/11917940.html