2

如果我需要从使用 Python 和 Beautiful 滚动到页面底部(即无限扩展页面)时自动加载下一页的网站上抓取数据,我该怎么做?是否有通用方法或需要为每个网站量身定制?

网站示例:http: //statigr.am/tag/cat/#/list

4

1 回答 1

2

如果存在动态行为,例如通过 ajax 调用加载其他内容(如此处所示) - 您应该在seleniumstatigr.am的帮助下使用真正的浏览器,或者您应该为特定网站定制网络爬虫脚本并模拟 ajax自己打电话。

要定制您的 staticgr.am 网络爬虫,您需要使用浏览器开发工具来查看页面加载后发出的请求。你可能会注意到这个 XHR 请求是首先发出的:

http://statigr.am/controller_nl.php?action=nlGetMethod&method=mediasTag&value=cat&max_id=1371516699343

它返回包含您需要的所有数据的 json。字典中还有一个next_max_tag_idpagination- 它用于下一个 ajax 请求到controller_nl.php. 因此,我将通过urllib2or模拟它们并通过模块requests解析 json 。json看起来不需要用beautifulsoup.

希望有帮助。

于 2013-06-17T18:05:41.903 回答