我需要检查网页搜索结果并将其与用户输入进行比较。
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 =""内部,但是如何将其取出并使其可用=
答案 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']