2017-08-11 19 views
0

現在、BeautifulSoupを使用して次のWebサイトを抽出しています。 しかし、私は必要なデータを印刷するのに苦労しています。Beautiful Soup Pythonのリスト項目を印刷する

私は、各リストエントリのために抽出するために探しています:

データ・数量値とのhref =「#」> 4値。たとえば、最初のリストエントリでは、href = 4とdata-qty = 1.000を抽出しようとしています。

現在使用しているコードがデータの下に表示されています。

<div class="content size-options size_us-options" data-sizegroup="size_us" style="display:none"> 
    <ul class="sizes small-block-grid-4"> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="24" data-price="0" data-qty="1.0000" data-qtymad="0.0000" data-qtybcn="1.0000" data-oblocators="BBAI-0B-05-05" href="#">4</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="172" data-price="0" data-qty="4.0000" data-qtymad="0.0000" data-qtybcn="2.0000" data-oblocators="BBAI-0B-05-05" href="#">4.5</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="22" data-price="0" data-qty="10.0000" data-qtymad="0.0000" data-qtybcn="2.0000" data-oblocators="BBAI-0B-07-05" href="#">5</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="160" data-price="0" data-qty="10.0000" data-qtymad="0.0000" data-qtybcn="3.0000" data-oblocators="BBAI-0B-07-05" href="#">5.5</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="20" data-price="0" data-qty="9.0000" data-qtymad="0.0000" data-qtybcn="3.0000" data-oblocators="BBAI-0B-05-05" href="#">6</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="165" data-price="0" data-qty="11.0000" data-qtymad="0.0000" data-qtybcn="3.0000" data-oblocators="BBAI-0B-05-05" href="#">6.5</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="18" data-price="0" data-qty="28.0000" data-qtymad="0.0000" data-qtybcn="3.0000" data-oblocators="BBAI-0B-05-05" href="#">7</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="110" data-price="0" data-qty="41.0000" data-qtymad="0.0000" data-qtybcn="3.0000" data-oblocators="BBAI-0B-05-05" href="#">7.5</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="16" data-price="0" data-qty="53.0000" data-qtymad="0.0000" data-qtybcn="3.0000" data-oblocators="BBAI-0B-05-05" href="#">8</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="121" data-price="0" data-qty="68.0000" data-qtymad="0.0000" data-qtybcn="3.0000" data-oblocators="BBAI-0B-06-02;BBAI-0B-05-05" href="#">8.5</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="14" data-price="0" data-qty="85.0000" data-qtymad="0.0000" data-qtybcn="4.0000" data-oblocators="BBAI-0B-07-05" href="#">9</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="114" data-price="0" data-qty="64.0000" data-qtymad="0.0000" data-qtybcn="4.0000" data-oblocators="BBAI-0B-07-05" href="#">9.5</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="12" data-price="0" data-qty="71.0000" data-qtymad="0.0000" data-qtybcn="4.0000" data-oblocators="BBAI-0B-07-05" href="#">10</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="105" data-price="0" data-qty="59.0000" data-qtymad="0.0000" data-qtybcn="3.0000" data-oblocators="BBAI-0B-07-05" href="#">10.5</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="10" data-price="0" data-qty="61.0000" data-qtymad="0.0000" data-qtybcn="3.0000" data-oblocators="BBAI-0B-07-05" href="#">11</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="117" data-price="0" data-qty="39.0000" data-qtymad="0.0000" data-qtybcn="2.0000" data-oblocators="BBAI-0B-07-05" href="#">11.5</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="8" data-price="0" data-qty="39.0000" data-qtymad="0.0000" data-qtybcn="2.0000" data-oblocators="BBAI-0B-07-05" href="#">12</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="202" data-price="0" data-qty="25.0000" data-qtymad="0.0000" data-qtybcn="0.0000" data-oblocators="" href="#">12.5</a> 
     </li> 
     <li> 
      <a rel="nofollow" class="size-button available" data-optionIndex="126" data-price="0" data-qty="26.0000" data-qtymad="0.0000" data-qtybcn="0.0000" data-oblocators="" href="#">13</a> 
     </li> 
    </ul> 
</div> 

これは私が現在使用しているコードですが、私は私が必要と任意の助けに感謝されるデータを抽出して印刷するのに苦労しています!

soup = BeautifulSoup(response.content, 'html.parser') 
ukattributes = soup.find('div', {'class':'content size-options 
size_uk-options'}) 
print ukattributes 
sizes = ukattributes.findAll('li') 
print sizes 
    for size in sizes: 
    response = s.get(size.find('a')['href']) 
    soup = BeautifulSoup(response.content, 'html.parser') 
    print size 

私がしばらくお待ちしておりますので、お手伝いできますか教えてください。もう一度おねがいします

+0

HTMLが完了していないが、我々は、開閉のdivまたはUL要素間のすべてのソースを持つことができますか? –

+0

@ Dan-Dev私は閉会挨拶までもう一度お礼を言いました – Larsson

答えて

1

これは、それはおそらくページではJavaScriptが使用するか、単に同じページにリンクされているサーバーに送信されないようあなたは、URLの#にGET要求を行う傾けます。詳細はPagination giving the first page in every iterationへの私の答えを見てください。 So:

response = s.get(size.find('a')['href']) 

期待どおりに動作しません。

soup = BeautifulSoup(response.content, 'html.parser') 
ukattributes = soup.find('div', {'class':'content size-options size_us-options'}) 
print (ukattributes) 
sizes = ukattributes.findAll('li') 
print (sizes) 
for size in sizes: 
    href = size.find('a',href=True) 
    print (href.text) 
    print (href["data-qty"]) 

出力:データを取得するには、あなたがしようと要求し

4 
1.0000 
4.5 
4.0000 
5 
10.0000 
5.5 
10.0000 
+0

ありがとう! @ Dan-Devこれはまさに私が探していたものです – Larsson

1

あなたは必要なデータを選択するために単純なリストの理解を使用することができます。

ukattributes = soup.find('div', {'class':'content size-options size_us-options'}) 
data = [ [a.text, a.get('data-qty')] for a in ukattributes.find_all('a') ] 
+0

これは本当にありがとう、これは私のPythonの学習に本当に役立ちます! – Larsson

+0

私はその男を聞いてうれしいです。リスト内包は非常に便利な機能です。 –

+0

あなたはこれについての良い読み方を知っていますので、私はもっと慣れ親しむことができますか? – Larsson

関連する問題