是否可以下载页面的一部分 html 代码,以便以后使用 python 抓取它?

Is it possible to download a part of a page's html code so you can scrape it with python later?

提问人:Programmer0403 提问时间:10/25/2023 最后编辑:XMehdi01Programmer0403 更新时间:10/26/2023 访问量:56

问:

我正在创建一个 python 网页抓取项目,我从这个网站返回任何初级网球运动员的排名数据:网站

底部有一个选择器,您可以在其中选择每页看到多少人。如果您选择 100,将有 100 页的排名(10000 名玩家)有没有办法下载完整的排名表,以便我可以从中提取排名值?USTA每周三更新排名,所以我想我可以每周下载一次,这将加快这个过程,而不是使用我现在正在做的Selenium。

到目前为止,我已经用硒(片段)做到了这一点,对于32名玩家的锦标赛来说,这需要一段时间。

    driver2 = webdriver.Chrome()
    driver2.get('https://www.usta.com/en/home/play/rankings.html#tab=junior&junior-juniorListType=seeding&junior-rankListGender=M&junior-ageRestriction=Y14')

    try:
        driver2.maximize_window()
        search = WebDriverWait(driver2, 35).until(
            EC.presence_of_element_located((By.XPATH, "//*[@id='container-9a770322f5']/div/div/div/div/input"))
        )
        search.click()
        search.send_keys(name_string)

    finally:
        pass



try:
        national_ranking = WebDriverWait(driver2, 30).until(
            EC.presence_of_element_located((By.XPATH, "//*[@id='container-c80bd54915']/div/div[1]/div/div[2]/div/span/p"))
        )
        ranking_string = str(national_ranking.text)
    except:
        ranking_string = 'Error'
    finally:
        pass

如果我无知,请原谅我,因为这是我在 SO 上的第一篇帖子

python html 性能 selenium-webdriver 网页抓取

评论

0赞 JeffC 10/25/2023
在执行此类操作之前,您应该始终阅读该网站的服务条款。基本上,您不能合法地抓取该网站,所以不要。尊重他们保护自己数据的权利。如果你想学习抓取一个网站,有很多你可以练习的地方。
0赞 tacoshy 10/25/2023
不介意法律法规,您总是在打开网站时下载网站。要显示网站,浏览器必须(至少暂时)下载文件。如果打开开发工具,则会有“网络”选项卡。列出了下载的每个文件。您可以从那里查看和复制源代码。
0赞 tacoshy 10/25/2023
@Oysters SO 指南很明确。每个问题都是允许的,并且可以在该范围内回答。我们不是判断用户是否将此处的信息和知识用于非法或合法活动的法官。甚至像黑客这样的问题也至关重要。不是将其用于恶意目的,而是了解流程并修复安全问题。
0赞 OysterShucker 10/25/2023
@tacoshy - 我理解,但是,如果我向人们展示如何做到这一点,你和我都知道这是非常不道德的。我只是想看看我能不能。我实际上是在绕过他们的整个系统,伪造他们的密钥和一切。我不是在教别人如何做到这一点。不过,我对它的简单程度感到惊讶。
0赞 Simeon Ikudabo 10/25/2023
是的,您可以在浏览器中查看源代码,并使用您正在寻找的数据遍历特定元素。这可能不一定更快,因为您仍然必须点击该端点才能获取数据,但就像您必须使用 GET 请求一样。无论提取数据,您都将访问相同的端点,但您可以根据需要从 HTML 中抓取它。

答: 暂无答案