2017-09-20 25 views
0

私はこのサイトから各NSNとその説明を取り出したいと思っていますhttp://www.iso-parts.com/Index/1Pythonと美しいスープでクロールするウェブサイトが機能していません

私がしようとしたコードは次のようになります。その代わり、このような1005-00-130-5515などNSNSのリストを取得する

import requests 
from bs4 import BeautifulSoup 
import urllib3 
import pyrebase 


from urllib.request import urlopen as uReq 
from bs4 import BeautifulSoup as soup 

NSNurl = 'http://www.iso-parts.com/Index/1' 
uClient = requests.get(NSNurl, verify=False) 
page_html = uClient.content 

# close client 
uClient.close() 
page_soup = soup(page_html, "html.parser") 
container = page_soup.find_all("td", {"class": "tdD"}) 

for container1 in container: 
     NSN = container1.find("td", {"class": "tdD"}) 
     print(NSN) 

、私が得るすべてはNoneです。サイト内のすべてのNSNを取得するにはどうすればよいですか?

+0

これはなぜ下落したのですか? – learner101

+0

すべての属性とその値を出力するには、 'container1'または' pprint(container1 .__ dict __) 'を(' from pprint import pprint'の後に)印刷してみてください。私はしばしば、私の前提をテストするために、すばやく汚れたデバッグツールを使用します。 – CivFan

答えて

0

現在、tdのすべてを取得しており、それぞれの中にtdを1つずつ探しています。

container = page_soup.find_all("td", {"class": "tdD"}) 

for container1 in container: 
     #container1 is a <td></td> 
     NSN = container1.find("td", {"class": "tdD"}) #here 
     print(NSN) 

代わりに、あなたはcontainer1

の内側アンカーのテキスト値を取得する必要がありはまた、2つの<td>は、各行に、クラスtdDで実際にあります。数値の値とテキストの説明。だから、アンカーを入れていないものは飛ばしてください。

for container1 in container: #container1 is <td> element 
    nsn = container1.find('a') #get the anchor from the <td> 
    if nsn is not None:  #if an anchor is found 
     print(nsn.contents[0]) #print it 
    else: 
     print(container1.text) #the description 
+0

私が戻ってきたのはすべて「なし」 – learner101

+1

です。その脆弱性を含むコードの部分を貼り付けたので、あなたの注意を引くことになりました – Bricky

+0

ありがとう!それは働いたので、説明を取得するにはcontainer1.text – learner101

関連する問題