Python 当url不';你不能定义页码吗?

Python 当url不';你不能定义页码吗?,python,web-scraping,python-requests,Python,Web Scraping,Python Requests,我想从网站的第二页获取html。我已经习惯了显示页码的url,并允许我通过操纵它来刮取多个页面 my_url = 'https://www.bodybuilding.com/exercises/finder/lookup/filter/muscle/id/1/muscle/chest' headers = {'referer':my_url, 'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebK

我想从网站的第二页获取html。我已经习惯了显示页码的url,并允许我通过操纵它来刮取多个页面

my_url = 'https://www.bodybuilding.com/exercises/finder/lookup/filter/muscle/id/1/muscle/chest'

headers = {'referer':my_url,
           'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
           'x-requested-with':'XMLHttpRequest'}
payload = {'orderByField':'exerciseName',
           'orderByDirection':'ASC',
           'page':30}
params = {'muscleID':1,
          'exerciseTypeID':[2,6,4,7,1,3,5],
          'equipmentID':[9,14,2,10,5,6,4,15,1,8,11,3,7],
          'mechanicTypeID':[1,2,11]}

r = requests.post(my_url, data=payload, headers=headers, params=params, verify=True)
soup = bs(r.text, 'html.parser')

这是一个非常有趣的问题。如果您检查页面,您将看到分页是由javascript驱动的,而不是直接来自任何服务器提供的API。但是,如果深入调用堆栈,就会发现它们的内部API。这意味着(对您来说幸运的是),答案比在python脚本中以某种方式呈现页面/运行javascript要简单得多


退房,第1329行。这应该可以让您开始使用他们基于JSON的API(当您开始使用它时,您会注意到,它仍然在JSON中提供HTML字符串,因此它应该适合您的设置)。有一个名为
refreshFinderResultSet
的函数,其中的ajax调用应该可以让您开始使用。

Woah谢谢。我只使用了基本url,但您发送给我的链接显示了我需要做的一切。