Python 尝试一次对电影网站观看列表(Mubi)的网络抓取

Python 尝试一次对电影网站观看列表(Mubi)的网络抓取,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,尝试将我在这里找到的代码用于类似的情况,但只是得到一个空列表的输出 # Import Module from bs4 import BeautifulSoup import requests # Website URL url = 'https://mubi.com/users/9167878/watchlist' r = requests.get(url) soup = BeautifulSoup(r.content, "lxml") g_data = soup.f

尝试将我在这里找到的代码用于类似的情况,但只是得到一个空列表的输出

# Import Module
from bs4 import BeautifulSoup
import requests

# Website URL
url = 'https://mubi.com/users/9167878/watchlist'

r = requests.get(url)

soup = BeautifulSoup(r.content, "lxml")

g_data = soup.find_all('h3', {"class": "film-title", 'lang': 'en'})

print(g_data)

数据通过JavaScript从外部源加载。您可以使用此示例了解如何使用
请求
/
json
模块加载它:

import json
import requests


url = "https://mubi.com/users/9167878/watchlist"
api_url = (
    "https://mubi.com/services/api/wishes?user_id={user_id}&page=1&per_page=24"
)
user_id = url.split("/")[-2]

data = requests.get(api_url.format(user_id=user_id)).json()

# uncomment this to print all data
# print(json.dumps(data, indent=4))

for d in data:
    print("{:<50} {}".format(d["film"]["title"], d["film"]["canonical_url"]))

@如果你打开Firefox开发者工具->网络选项卡(Chrome也有类似的功能),你会看到页面发出的每个请求(它们之间是这个API URL)。