0

学校のプロジェクトでは、「就職活動」の Web サイトをスクレイピングして DB に保存し、後でこれらのプロファイルと人を探している企業と照合する必要があります。

この特定のサイトでは、スクレイピングする必要があるページへのすべての URL が 1 つの div (ページごとに 10 個のリンク) にあり、div は「primaryResults」と呼ばれ、10 個含まれています。

Beautifulsoup では、404 などのポップアップが表示されるまで、URL のページ番号をループして、配列内のすべてのリンクを最初にスクレイピングしたいと考えています。

次に、これらの各ページを調べて、各ページから必要な情報を配列に保存し、最後にこれを DB に送信します。

ID = 'primaryResults' div から 10 個のリンクを収集する部分で行き詰まりました。

これをPythonに入れ、10個のURLすべてを配列に格納するにはどうすればよいですか? これまでのところ、私はこれを試しました:

import urllib2
from BeautifulSoup import BeautifulSoup

opener = urllib2.build_opener()
opener.addheaders = [("User-Agent", "Mozilla/5.0")]

url = ("http://jobsearch.monsterboard.nl/browse/")

content = opener.open(url).read()
soup = BeautifulSoup(content)

soup.find(id="primaryResults")
print soup.find_all('a')

しかし、これはエラーになるだけです:

Traceback (most recent call last):

print soup.find_all('a')
TypeError: 'NoneType' object is not callable

誰か助けてくれませんか?ありがとう :)

4

1 に答える 1

2

あなたが言及したURLにあるすべてのリンクを取得するための答えは次のとおりです

from bs4 import BeautifulSoup
import urllib2
url="http://jobsearch.monsterboard.nl/browse/"
page=urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
jobs=soup.findAll('a',{'class':'slJobTitle'})
for eachjob in jobs:
 print eachjob['href']  

それが明確で役立つことを願っています。

于 2013-10-07T19:09:21.867 に答える