Javascript Python网页抓取,如何单击';下一个';使用HTML库

Javascript Python网页抓取,如何单击';下一个';使用HTML库,javascript,python,web-scraping,python-requests-html,Javascript,Python,Web Scraping,Python Requests Html,我正在尝试使用python请求html模块从“”获取数据。我能够获得前100个项目(从第一页),因为该页启用了javascript。我们需要点击“下一步”来加载第二页,目前我只得到前100个项目 当我在浏览器上单击“下一步”时,地址栏上的url不会改变。因此,我不知道如何使用html请求获取下一页 from requests_html import HTMLSession def get_fortune500(): companies = [] url = 'https://f

我正在尝试使用python请求html模块从“”获取数据。我能够获得前100个项目(从第一页),因为该页启用了javascript。我们需要点击“下一步”来加载第二页,目前我只得到前100个项目

当我在浏览器上单击“下一步”时,地址栏上的url不会改变。因此,我不知道如何使用html请求获取下一页

from requests_html import HTMLSession

def get_fortune500():
    companies = []
    url = 'https://fortune.com/global500/2019/search/'
    session = HTMLSession()
    r = session.get(url)
    r.html.render(wait=1, retries=2)
    table = r.html.find('div.rt-tbody', first=True)
    rows = table.find('div.rt-tr-group')
    for row in rows:
        row_data = []
        cells = row.find('div.rt-td')
        for cell in cells:
            celldata = cell.text.lstrip('$').replace(',', '')
            row_data.append(celldata)
        companies.append(row_data)
    return companies

fortune_list = get_fortune500()
print(fortune_list)
print(len(fortune_list))

我真的很感谢你抽出时间。

这是500人的名单

此网站将此API的响应存储在浏览器IndexedDB中,之后只有前端控制


您可以找到从第一个请求中读取响应的方法。

请求
更适合于
AJAX
类型的请求,而不是“web抓取”或与HTML交互等。。若要在使用Python的网站上以编程方式单击按钮等,最好的选择是,或者我刚刚确认该网站正在使用服务器端呈现,而不是一些API来获取数据,这意味着您必须使用Beautiful Soup或Selenium从HTML中提取数据-不幸的是,在这种情况下,您不能使用请求,据我所知。这些似乎是您可以在查询中使用的所有参数,仅供参考<代码>https://fortune.com/global500/2019/search/?name=walmart§or=&industry=&hqcountry=&hqcity=&hqstate=@MattOestreich谢谢你。如果没有太多的要求,你知道有什么例子。给我一分钟,我可以试着为你整理一些东西看起来@JugrajSingh对此做了更多的尽职调查,并且确实找到了他们正在使用的API,这意味着你应该能够使用请求。这是我关于堆栈溢出的第一篇文章,我现在很惊讶这些聪明的人这么快就愿意帮助一个陌生人。我认为我的问题很愚蠢,没有人会在意。哇…这改变了我的想法。。在30分钟内,我找到了比我想象的更好的解决方案。现在我对昨晚浪费的时间感到很愚蠢:D。非常感谢。