BeautifulSoup4 - 多个页面上1个div内的所有链接

时间:2013-10-06 22:12:24

标签: python beautifulsoup scraper

对于一个学校项目,我们需要抓住一个“找工作”网站并将其存储在数据库中,然后与正在搜索人员的公司匹配这些配置文件。

在这个特定的网站上,我需要抓取的页面的所有网址都是1个div(每页有10个链接),div被称为“primaryResults”,里面有10个。

使用beautifulsoup我希望首先通过循环遍历网址中的页码来刮取数组中的所有链接,直到弹出404或类似内容。

然后浏览每个页面,并将每个页面所需的信息存储到一个数组中,最后将其发送到我的数据库。

现在我陷入了从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

有人可以帮帮我吗?谢谢:))

1 个答案:

答案 0 :(得分:2)

以下是获取您提到的网址中所有链接的答案

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']  

希望它清楚有用。