【发布时间】:2023-03-31 21:11:01
【问题描述】:
我一直在尝试构建一个机器人,它可以抓取 Instagram 中喜欢图片的追随者的姓名。该网站会打开一个弹出框,其中包含帐户,并且该框似乎会在您滚动时刷新帐户链接。我编写了一个代码,可以打开该框然后滚动它,但我无法让 selenium 刮取帐户名称。我的代码看起来像这样滚动弹出框:
realscroll_box = browser.find_element_by_xpath('/html/body/div[4]/div/div[3]/div')
while last_ht != ht:
last_ht = ht
time.sleep(2)
ht = browser.execute_script('''
arguments[0].scrollTo(0, arguments[0].scrollHeight);
return arguments[0].scrollHeight;
''', realscroll_box)
namelinkstemp1 = realscroll_box.find_elements_by_xpath('//*[contains(@href,"/")')
但它给了我这个错误:
selenium.common.exceptions.InvalidSelectorException:消息:无效选择器:由于以下错误,无法使用 xpath 表达式 //[starrts-with(@href,"/") 定位元素: SyntaxError: 无法对“文档”执行“评估”:字符串 '//[starrts-with(@href,"/")' 不是有效的 XPath 表达式。
我试图提取的文本如下所示:
<a title="instagramusername" href="/instagramusername/">
<div class=" Igw0E IwRSH eGOV_ ybXk5 _4EzTm ">
<div class="_7UhW9 xLCgt qyrsm KV-D4 fDxYl rWtOq">
<div class=" Igw0E rBNOH eGOV_ ybXk5 _4EzTm ">instagramusername</div>
</div>
</div>
</a>
感谢您的帮助,xpath 查询对我来说非常新。
谢谢:)
【问题讨论】:
-
你的 xpath 真的是
starrts-with吗?您拼错了函数名称。它的r太多了。 -
我希望不会!似乎我的代码从头到尾都充满了错误。好尴尬
标签: python html selenium xpath