单击按钮后如何抓取数据

时间:2019-06-09 21:05:13

标签: python-3.x web-scraping beautifulsoup

我试图用漂亮的汤从网站上抓取数据,但是要抓取所有内容,我必须单击按钮

<button class="show-more">view all 102 items</button>

加载每个项目。我听说它可以用硒来完成,但这意味着我必须使用脚本打开浏览器,然后抓取数据。还有其他方法可以解决此问题。

1 个答案:

答案 0 :(得分:0)

您可以使用与页面相同的API终结点,该终结点以json形式返回所有信息。将记录返回计数设置为高于预期的总数。我展示了从json解析出专辑标题/ URL。您可以浏览响应here。刷新提供的网址时,您可以在浏览器网络标签中找到此端点。

import requests

data = {"fan_id":1812622,"older_than_token":"1557167238:2897209009:a::","count":1000}
r = requests.post('https://bandcamp.com/api/fancollection/1/wishlist_items', json = data).json()
details = [(item['album_title'], item['item_url']) for item in r['items']]
print(details)