我正在尝试解析一个图书馆网站,以便从特定的出版商那里获取信息。这是网站的链接。在
http://hollis.harvard.edu/?q=publisher:%22sonzogno%22+ex-Everything-7.0:%221700-1943%22+
到目前为止,通过使用BeautifulSoup,我可以从这个页面获取我需要的数据。问题是我的脚本只从整个结果集中抓取前25个条目(一个页面的价值),而这个结果集有很多。在
我错过了什么?在
下面是一小段代码。
def url_parse(name):
if(name == " "):
print 'Invalid Error'
else:
response = urllib2.urlopen(name)
html_doc = response.read()
soup = BeautifulSoup(html_doc)
print soup.title
print soup.find_all("a",{"class":"classiclink"})
#print soup.find("a",{"class":"classiclink"})
aleph_li = [] # creates and emptylist
aleph_li = soup.find_all("a",{"class":"classiclink"})
在此之后,我计划使用这些可用的信息标签。所以就像你说的,我只能抓25个。在
我无法遍历每个页面,因为url(包含某种查询)似乎没有任何页面信息。我不知道如何向服务器发出重复请求。在
谢谢。在
也许这并不难:
如果查看获取其他页面的请求,即
result.ashx
,则可以看到以下参数:所以尝试在您自己的请求中添加一个参数
^{pr2}$curpage
。很可能需要使用一个循环来查看所有结果,但这似乎非常可行:霍利斯在测试版中有一个JSON API。它的结果包括到下一页的链接。这可能更容易使用。在
必须让python按顺序调用每个页面。知道你想浏览所有的页面是不够聪明的。在
如果要调用所有页面,则应该将所需的结果解析为某种形式的输出文件,可以是以后可以通过python处理的.pkl文件,也可以是.txt文件(如果您觉得这是您所需要的)。如果使用的数据集太长,可能会遇到内存溢出。在
即使您还没有调用所有页面,将输出数据流式传输到一个.pkl文件中,以便在最后处理成可用的形式也是明智之举。在
相关问题 更多 >
编程相关推荐