如何使用请求库获取输出列表?

时间:2015-08-13 20:14:27

标签: python python-requests

我正在尝试自动从此库http://www.dli.ernet.in/下载文件,并希望获得与特定语言相对应的所有书籍的列表(说:英语)

import requests
r = requests.get('http://www.dli.ernet.in/')
params = {'Language': 'English'}

但我不知道接下来该怎么做。我需要模仿

1)选择语言

2)点击搜索

3)获取所有图书名称的列表。

1 个答案:

答案 0 :(得分:2)

要做的第一件事是弄清楚您的浏览器正在做出什么样的请求。您可以使用" Web开发人员工具"在Firefox中执行此操作:

  • 显示Web开发人员工具箱(工具 - > Web开发人员 - >切换工具)
  • 点击"网络"标签
  • 执行搜索

这表明选择"英语"因为语言导致查询:

  

获取http://www.dli.ernet.in/cgi-bin/advsearch_db.cgi?perPage=25&listStart=0&r1=V1&title1=&author1=&year1=&year2=&subject1=Any&language1=English&scentre=Any&search=Search

我们可以使用requests库重现这一点,例如:

result = requests.get('http://www.dli.ernet.in/cgi-bin/advsearch_db.cgi',
                      params={
                          'language1': 'English',
                          'scentre': 'Any',
                          'listStart': '0',
                          'perPage': '25'
                      })

这将为我们提供result.text中网页的文字。你会 需要使用HTML解析器(如lxml.htmlBeautifulSoup) 解析这个并提取书籍列表。另请注意,这似乎是一个分页响应,这意味着您只需一次请求就无法获得所有结果。