2017-03-27 8 views
2

私は仕事リストのウェブサイトを解析するのにBSを使用しています。それはうまく動作しますが、divの最初の項目だけを返します。これを{'class': 'job-item'}というクラスのすべてのdivで繰り返し実行します。私はドキュメントを読み、これを得るためにいくつかの試みを試みましたが、私はちょうど立ち往生しています。Loopで美味しいスープのdivを繰り返します

from bs4 import BeautifulSoup 
import urllib2 
import time 

quote_page = 'https://jobbio.com/search/jobs?query=Developer&location=dublin&sector=' 
page = urllib2.urlopen(quote_page) 

soup = BeautifulSoup(page, 'html.parser') 

divs = soup.findAll({'class': 'job-item'}) 

for div in divs: 
     role_box = soup.find(attrs={'class': 'color-dark-grey'}) 
     role = role_box.text.strip() # strip() is used to remove starting and trailing 
     company_box = soup.find(attrs={'class': 'color-greenish-blue'}) 
     company = company_box.text.strip() # strip() is used to remove starting and trailing 
     location_box = soup.find(attrs={'class': 'color-grey'}) 
     location = location_box.text.strip() # strip() is used to remove starting and trailing 
     url_box = soup.find(attrs={'class': 'job-tile-actions'}).a['href'] 
     url_root = 'http://jobbio.com' 
     url = url_root + url_box 
     salary = '-' 
     date = time.strftime("%d/%m/%Y") 
     array = {'role':str(role), 'company': str(company), 'location': str(location), 'salary': str(salary), 'date':date, 'url': str(url)} 
     print array 

forループを削除すると、コードが正常に実行されるため、スクレーパーが機能することがわかります。私は、ページ上のすべてのものに対して複数の配列を印刷したいだけです。これは最終的に私はそれを照会することができるDBに行くつもりです。

おかげ

EDIT:デバッガを使用して、問題がループ(funnily十分)自体

> /var/www/html/JobScraper/scrape.py(13)<module>() 
-> divs = soup.findAll({'class': 'job-item'}) 
(Pdb) n 
> /var/www/html/JobScraper/scrape.py(15)<module>() 
-> for div in divs: 
(Pdb) n 
--Return-- 
> /var/www/html/JobScraper/scrape.py(15)<module>()->None 
-> for div in divs: 
(Pdb) n 
--Return-- 
> <string>(1)<module>()->None 
(Pdb) n 
> /usr/lib/python2.7/bdb.py(404)run() 
-> self.quitting = 1 

答えて

0

変化にあるすべてのforループの中soup.find()

divs = soup.findAll(class_= 'job-item')  
for div in divs: 

    div.find() 

ますsoupタグではなく、divタグから検索を開始する必要があります。soupタグはです。HTMLドキュメントのタグ

+0

返信いただきありがとうございます。私は頭から引っ張ってくるスープについては気づかず、完全に意味をなさない。 実行されますが、出力はありません(前と同じです)。その他の提案はありますか? – nford8

+0

@ nford8私の更新を確認してください –

+1

すごくうれしい!私は15歳未満であるので、私はupvoteできませんが、私は将来に戻ってこれをupvoteします。 – nford8

関連する問題