私たちはUrban Outfittersの製品を掻き集めようとしており、BeautifulSoup findメソッドには奇妙な問題があります。商品URLにsoup.find( 'span'、{"class": "mainPrice ng-scope ng-binding"})を呼び出して価格を取得します。プロダクトURLを(ウェブクロールによって)調べると、soup.findコールは無作為に何も返されません。BeautifulSoupランダムに返すなしを検索
たとえば、プログラムを1回実行すると、2番目のリンクではnoneが返されます。何も変更せずにすぐにプログラムを実行すると、2番目のリンクを越えてしまい、8番目のリンクで失敗しました。無関係な機能が省かれている
def findPrice(soup):
price = soup.find('span', {"class" : "mainPrice ng-scope ng-binding"})
print price
if price is not None:
return price.text.strip()
def postProduct(url):
driver.get(url)
html = driver.page_source
soup = BeautifulSoup(html, "html.parser")
product = {'brand': findBrand(soup), 'name': findProductName(soup), 'price': findPrice(soup), 'image': findImageLink(soup), 'description': findDescription(soup), 'url': url}
# products.insert(product)
注:Here is a link to our output
以下は私たちのコードです。
Link to the loop containing postProduct function
この問題を提供することができる任意の助けをいただければ幸いです。以下は、私たちがpostProduct関数を呼び出しているループがあります。