我的目标是能够在我关注的所有Instagram(帖子+评论)用户块的页面上找到大小和位置。(下面的大矩形页面块,左侧为图片,右侧为评论)下面是一个示例:转到 https://www.instagram.com/zuck/点击第一篇文章我正在尝试在上面页面中心使用带有评论块的图像,以便我可以在块的页面上找到大小&位置。我看到的xpath是(),div类以开头,但是,当我刷新或转到其他用户时,这些更改。driver.find_element//*[@id="react-root"]/section/main/div/div/article/div[1]_97aPb所以,我正在寻找一种替代方法来找到这个元素。我希望能够点击下一篇文章,并能够找到所有帖子的(帖子+评论)块。
1 回答
慕容森
TA贡献1853条经验 获得超18个赞
如何获取文章:
根据帖子的打开方式,内容将在 div 与 或 下。如果您直接打开帖子,则没有对话框,但是如果您搜索,则最后一个将是您要查找的帖子。@role="dialog"
@id="react-root"
'//div[@role="dialog" or @id="react-root"]//article
所以:
article = driver.find_elements_by_xpath('//div[@role="dialog" or @id="react-root"]//article')[-1]
如何获取文章中的下一个图像:
next_image_arrow = article.find_element_by_xpath('.//*[contains(@class, "coreSpriteRightChevron")]')
如何选择下一篇文章(仅当文章以模式打开时才可用):
next_article_button = driver.find_element_by_xpath('//a[contains(@class, "coreSpriteRightPaginationArrow")]')
如何获得评论:
all_comments = article.find_elements_by_xpath('./div/section[2]/following-sibling::div/ul/ul')
上面的 X 路径意味着:
/div/section[2]
<<文章节点中,获取具有直接div
子节点且至少具有 2 个直接部分
标记子节点的所有节点,然后选择第二个节点/following-sibling::div/ul/ul
<<获取找到的节节点,如果节节点后跟 div,并且它具有具有直接 ul 子节点且具有直接 ul 子节点,则返回它们
我希望这能回答这个问题。
添加回答
举报
0/150
提交
取消