お気に入り!Pythonフルスタック、1回限りのアクセスに必要な700の知識ポイント!

「ビッグウィナー」をガールフレンドと一緒に見た後、劉燕が出てきて、カップの問題についてガールフレンドと話しました。
ガールフレンドは、Aカップが最も人気があると言いました!優秀な人はみんなA!
私はそれを彼女と長い間友好的に話し合った!
彼女はごちゃごちゃしていると思います!絶対に洗練されています!
中国の女性のカップデータをPythonでクロールする必要があります。
声明私は私のガールフレンドがごちゃごちゃしていることを証明することです!追い出されることはありませんでした!
コードは次のとおりです(コメント内のいくつかの写真は適切です。コードを変更してダウンロードできます)。

 

インポートリクエスト
インポート再
インポート
lxmlからのインポートインポート
 
 
 
 
etree定義cczh(文字列):#サイズ変換関数を定義します。さまざまなサイズがA / B / C / D / Eに変換さ
    れますstrに 'E'がある場合:#データにEがある場合次に:
        return 'E' #return E 
    if 'D' in str:
        return 'D' 
    if 'C' if str:
        return 'C' 
    if str 'in' in str:
        return 'B 
    ' in str:
        return 'in' in str:return 
    strの「XXL」場合は「A」、strの
    「XL」場合は「E」を、strの
    「L」場合は「D 」を、strの
    「M」場合は「C」を返します。
    strの 'S' 場合は'B'を
        返します:'A'を返します
    strの「1サイズ」ますstrの 
    res = requests.get(url、headers = headers).text#リクエストのget関数を使用して情報を取得し、headers = headersを使用して偽装します。テキストはテキスト情報に変換されます
    strで 'big' 場合は'B'を返します:strで
    'small' 場合は'C'を
        返します:return 'A' 
 
 
 
ヘッダー= { 
    "User-Agent": "Mozilla / 5.0(Windows NT 10.0; WOW64)AppleWebKit / 537.36( Keck、like Gecko)Chrome / 74.0.3729.169 Safari / 537.36 " 
} クライミングを突破するリクエストヘッダーを設定する
 
 
all_sizes = []#空のリストall_sizesを使用してサイズデータを準備する
" "" "Get product id" "" 
for i範囲(1,51):
    # URLステッチ用に1から50を順に生成#スプライスURL 
    url = "https://list.jd.com/list.html?cat=1315,1345,1364&ev=exbrand_90320&page=" + str(i)+ "&sort = sort_rank_asc&trans = 1&JL = 6_0_0#J_main"HTML(res) 
    #Convert to xpath type sp_ids = res_xpath.xpath( '// * [@ id = "plist"] / ul / li / div / @ data-sku')#xpathを使用して製品IDを抽出
    res_xpath = etree.HTML(res)#Convert to xpath type 
    time.sleep(5)#sp_id 
    for sp_id in sp_ids:#sp_idsからsp_idを抽出して順にステッチ
        "" "" Get comment size "" " 
        for i範囲(1,51):#1-50を順番に生成してコメントURLをステッチします
            url = "https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId="+ str(sp_id)+"&スコア= 0&sortType = 5&page = "+ str(i)+"&pageSize = 10&isShadowSku = 0&rid = 0&fold = 1 " 
            res = requests.get(url、headers = headers).text#リクエスト取得関数を使用して情報を取得し、ヘッダー=偽装するヘッダー。テキストはテキスト情報に変換されます
            size = re.findall( '"productSize": "(。*?)"'、res)#サイズ情報を取得するために正規表現を使用します
            print(sizes)#サイズのサイズのサイズ情報を印刷します:#サイズの情報
            を順番に回します all_sizes。append(size)#all_sizesに情報を追加します
    time.sleep(5)#5秒の遅延を設定します
 
"" "サイズ変換用" ""
abcds = []#空のリストabcdsを使用して、all_sizesのサイズのサイズデータを準備します
。#all_sizesの情報を順番にオンにします
    size = cczh(size)#関数cczhを使用して、サイズ変換のサイズについて話します
    abcds.append(size)#変換されたデータはabcdsのリストに追加されます
print(abcds)
print(len(abcds))#サイズの合計数を表示
 
"" "Perform size statistics" "" 
tjs = set(abcds)#リストabcdsを使用して繰り返しなしで注文を作成します要素セットtjs、つまり重複要素の削除、tjsの[A / B / C / D / E]のみの保持など
、tjs内のtjの#Sequentially extract data from tjs 
    count = 0 #Define a variable count = 0 to count 
    for abcd abcdsの場合:#abcdsリストから順次データを抽出する
        場合tj == abcd:#if abcd == tj then:
            count + = 1 #count = count + 1数値は1 
    プリント増加します(tj、 ":"、count)#Print カップの数を表示

 

  データが出ました!
631550
E:3190
A:144810
なし:1590
B:331060
C:132000
D:18900
景東のデータによると、Bの売上ははるかに進んでいます!AとCはそれほど違いません!Eの数は比較的少ないです!F / G / Hの数は…さらに少ない!

 

おすすめ

転載: www.cnblogs.com/7758520lzy/p/12707279.html