如何使用请求库获取输出列表?
How can I get a list of output using requests library?
我正在尝试从该图书馆http://www.dli.ernet.in/自动下载文件,并希望获得与特定语言(例如:英语)相对应的所有书籍的列表
import requests
r = requests.get('http://www.dli.ernet.in/')
params = {'Language': 'English'}
但我不确定下一步该怎么做。我要模仿
1) Select 语言
2) 单击搜索
3) 获取所有书名的列表。
首先要做的是弄清楚您的浏览器正在发出什么请求。您可以在 Firefox 中使用 "web developer tools" 来执行此操作:
- 显示 Web 开发人员工具箱(工具->Web 开发人员->切换工具)
- 单击 "Network" 选项卡
- 执行搜索
这表明选择 "English" 作为查询的语言结果:
我们可以使用 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.html
或 BeautifulSoup
)来
解析它并提取书籍列表。另请注意,这似乎是分页响应,这意味着您不会通过单个请求获得 所有 结果。
我正在尝试从该图书馆http://www.dli.ernet.in/自动下载文件,并希望获得与特定语言(例如:英语)相对应的所有书籍的列表
import requests
r = requests.get('http://www.dli.ernet.in/')
params = {'Language': 'English'}
但我不确定下一步该怎么做。我要模仿
1) Select 语言
2) 单击搜索
3) 获取所有书名的列表。
首先要做的是弄清楚您的浏览器正在发出什么请求。您可以在 Firefox 中使用 "web developer tools" 来执行此操作:
- 显示 Web 开发人员工具箱(工具->Web 开发人员->切换工具)
- 单击 "Network" 选项卡
- 执行搜索
这表明选择 "English" 作为查询的语言结果:
我们可以使用 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.html
或 BeautifulSoup
)来
解析它并提取书籍列表。另请注意,这似乎是分页响应,这意味着您不会通过单个请求获得 所有 结果。