使用python和beautifulsoup检查网页的结果

时间:2014-02-03 14:28:49

标签: python parsing beautifulsoup windows-1252

我需要检查网页搜索结果并将其与用户输入进行比较。

ui = raw_input() #for example "Niels Bohr"
link = "http://www.enciklopedija.hr/Trazi.aspx?t=profesor,%20gdje&s=90&k=10"
stranica=urllib.urlopen(link)
soup = BeautifulSoup(stranica, from_encoding="utf-8")
beauty = soup.prettify()
print beauty

因为有1502个结果,我的想法是将k=10更改为k=1502。现在我需要某种功能来检查搜索结果是否包含我的用户输入。我知道我的名字是TEXT之后的文字 那该怎么办?也许正在使用正则表达式? 第二部分是否有匹配结果来获得结果的链接。同样,我知道链接在href =""内部,但是如何将其取出并使其可用=

1 个答案:

答案 0 :(得分:0)

查找是否列出Niels Bohr就像使用大批号并加载生成的页面一样简单:

import sys
import urllib2

from bs4 import BeautifulSoup

url = "http://www.enciklopedija.hr/Trazi.aspx?t=profesor,%20gdje&s=0&k={}".format(sys.maxint)
name = u'Bohr, Niels'

page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())

for link in soup.find_all(class_='AllWordsTextHit', text=name):
    print link

这会生成包含文本'Bohr, Niels'作为链接文本的所有链接。如果需要部分匹配,可以使用正则表达式。

链接对象具有(相对)href属性,您可以使用该属性加载下一页:

professor_page = 'http://www.enciklopedija.hr/' + link['href']