2016-08-16 7 views
-1

私は私のscript.py複数のURL - BeautifulSoupスクレイピング

urls.txtと同じディレクトリにあるテキストファイルurls.txtを持つ複数のURLのリストを1行に1つずつ持っています。私は一発ですべてのURLをこすり特にdiv

このdivの内容を引き出すしようとしています

は、各URLここ

に複数回発生することは私のスクリプトです

import requests 
from bs4 import BeautifulSoup 
from urllib import urlopen 

with open('urls.txt') as inf: 
    urls = (line.strip() for line in inf) 
    for url in urls: 
     site = urlopen(url) 
     soup = BeautifulSoup(site, "lxml") 
     for item in soup.find_all("div", {"class": "vm-product-descr-container-1"}): 
      print item.text 

urls.txtのすべてのURLからコンテンツを返す代わりに、スクリプトはリスト内の最後のURLのコンテンツのみを返します。

私のスクリプトはエラーを返さないため、どこが間違っているのかわかりません。

ありがとうございます。

+0

@danideeあなたは自分のコードからエラーを編集したばかりです^^ –

+0

@RobBenz、あなたの受け入れられた答えは実際にあなたの質問に答えてくれます。 –

答えて

1

は小さなインデントエラーのように思える:このブロックで ルック:この1へ

for url in urls: 
    site = urlopen(url) 
    soup = BeautifulSoup(site, "lxml") 
    for item in soup.find_all("div", {"class": "vm-product-descr-container-1"}): 
    print item.text 

変更して:印刷がために内部で反復ごとに実行されます

for url in urls: 
    site = urlopen(url) 
    soup = BeautifulSoup(site, "lxml") 
    for item in soup.find_all("div", {"class": "vm-product-descr-container-1"}): 
     print item.text 

この方法ループ。

+0

いいえ、あなたはあなたの答えに字下がりのエラーがあります – danidee

+0

私はちょうど今私の答えを編集.. –

関連する問題