淘宝網の商品の商品情報をクロール定期的なライブラリを使用して、我々は最初にクロールするオブジェクトを識別する必要があります
私たちは、淘宝網では「パイソン」を検索し、結果が出てきます
我々は最初のURLを使用するように、製品がURL接続キーワードから入手することができます検索するには、「= Q」であります。https:?//S.taobao.com/search Q =パイソン
そして、比較めくっ、フリップ後、変更のキーワードをs、各フリップ、sが44倍に増加します(あなたはアイテムの数がページごとに表示する数えることができる、ちょうど44である)
ことができるように(ページ数をクロール)クロールの深さを設定するためのキーワード「S =」、
右ビューのソースコード、製品名は、キーワード「タイトル」とすることができ、「raw_title」、さらにいくつかの商品の名前を見て、より適切な「raw_title」を選択した、商品価格の自然は、比較淘宝網の商品陳列による「view_price」(ありますページ);ので、商品名や商品価格が「raw_title」に基づいています:「名前」と「view_price」:「価格」、キーのこの形式/値ペアが表示されます。
#のコード:UTF-8 インポート要求の 輸入再 製品 = ' カップ' URL = ' https://s.taobao.com/search?q= ' + グッズ R = requests.get(URL = URL、タイムアウト= 10 ) HTML = r.text TLIST = re.findall(R ' "?* \" \ "raw_title \" \ :. \ '、HTML) #通常のエキス製品名 のplist = re.findall(R " \ "view_price \" \:\「[\ D \。] * \ " "、HTML) #通常のプロンプトが表示され、商品価格 印刷(TLIST) 印刷(PLIST) 印刷(タイプの(PLIST)) # エキス商号および商品価格への正規表現は、リスト形式でデータを格納しています
、forループリストで構成される各アイテムの名前と価格を使用して、コメントを追加大規模なリストを引くこのリストを記述します。
goodlist = [] のための I における範囲(LEN(TLIST))。 タイトル =のeval(tlist- [I] .split(' :')[1]) #のeval()関数は、単純に引用符で囲まれた文字列を削除するために使用されている 価格=のeval(plistの[I] .split(' :')[ 1 ]) goodlist.append([タイトル,.価格]) #名前と小さなリストで構成される各アイテムの価格は、すべての商品がリストに追加大きなリストアップします 印刷(goodlistを)
おそらくアイデアはこれです。
DEF get_html(URL): "" " ゲットソースHTML " "" 試してみます: R = requests.get(URL = URL、タイムアウト= 10 ) r.encoding = r.apparent_encoding 戻りr.text 除く: 印刷(" 获取失败" ) DEF get_Data(HTML、goodlist): 「」 " 使用ライブラリの再リゾルブの商号及び価格 TLIST:商品リスト名 PLIST:商品価格リスト"" " TLIST = re.findall(R " \" raw_title \ "\:\。" * \"?" 、HTML) PLIST = re.findall(R ' \ "view_price \" \ \ "[\ D \。] * \" ' 、HTML) のための I における範囲(LEN(TLIST))。 タイトル =のeval(tlist- [I] .split(' :')[1]) #のeval()関数は、単純に引用符で囲まれた文字列を削除するために使用されている 価格=のeval(plistの[I] .split(' :')[ 1 ]) goodlist.append([タイトル、価格]) DEF その書込データ(リスト、NUM): #オープンで( 'E:/Crawler/case/taob2.txt'、 'A')ASデータ: #の 印刷(一覧、ファイル=データ) のために I 中(NUM)範囲: #書かれたテキストに、製品番号にクロールNUM制御 U = 一覧[I] オープン(と' E:/Crawler/case/taob.txt '、' ' )データとして: プリント(U、ファイル= データ) デフメイン(): 商品 = 「カップ」 深さ = 3 #すなわちめくり処理、深さをクロール定義 START_URLを= 「https://s.taobao.com/search?q= 」 + グッズ infoList = [] のための I における範囲(深さ): トライ: URL = START_URL + ' &= S ' + STR(44 * Iである) #淘宝網商品表示ページ44、I = 0の最初のp、インクリメントので HTML = get_html(URL) get_data(HTML、infoList) 除く: 継続 WRITE_DATA(infoList、lenは(infoList)) もし __name__ == ' __main__ ' : メイン()