我想抓取metal-archives.com并将信息放在有关金属乐队的数据库中。在查看代码20分钟后,我发现他们将数据保存在JSON文件中,可以使用this URL访问该文件。唯一的问题是AJAX代码设置为每页只显示200个条目:
$(document).ready(function() {
createGrid(
"#searchResults", 200,
在文件的顶部,我可以看到有超过11,000个乐队,但只有200个乐队。此外,当我点击不同的页面时,AJAX负责动态获取数据,而不更改地址栏中的URL,因此我无法看到其余的乐队。
然后我尝试将上面的代码更改为"#searchResults", 1000
,希望它在刷新后仍然存在,但是,唉,没有运气。知道如何做到这一点,基本上可以将整个JSON解析为Python字典并创建数据库吗?
答案 0 :(得分:1)
由于网址总是返回200条记录,因此您可以循环调用此网址,直到获得所有记录
第1步:
使用以下网址,传递iDisplayStart=0
并获得前200条记录,
http://www.metal-archives.com/search/ajax-band-search/?iDisplayStart=0&iDisplayLength=200
第2步:
解析json
并在json中获取iTotalRecords
的值,并在循环中反复调用url,直到获得所有记录。
您可以将iDisplayStart
更改为iDisplayStart+=200
以拨打下面的200条记录,如下所示
http://www.metal-archives.com/search/ajax-band-search/?iDisplayStart=200&iDisplayLength=200
然后,
http://www.metal-archives.com/search/ajax-band-search/?iDisplayStart=400&iDisplayLength=200
希望它对你有所帮助。