python XPath for peoplefinders.com缺少文本项

问题描述 投票:1回答:2

我正在尝试从peoplefinders.com抓取数据。但我要检索的部分是空的。

page = requests.get("http://www.peoplefinders.com/peoplesearch/searchresults?search=People&fn=joe&mn=&ln=jackson&city=&state=&age=&dobmm=&dobdd=&doby=1955")
tree = html.fromstring(page.content)
page.headers['Content-Type'] #'text/html; charset=utf-8'

tree.xpath('//a[@class = "reporttextblue"]') #returns []

在html检查中,我想要的文本部分如下:

<a class = "reporttextblue" href = "...">
text text text
<span></span> 
text text text
<br/>
text text text  
</a>

笔记:

  • 我在jupyter笔记本中运行内核。
  • 我在IE浏览器和Chrome浏览器中都尝试过,但是没有用。
  • 该网站是一个动态的网站,当你最小化或最大化时,它会将html更改为:: before和:: after。
  • 运行时网站上缺少文字: tree.xpath( '//文本()')

我希望有人可能会告诉我这背后的真正原因是什么,也许告诉我一个更好的方法来使用Python来获取数据。

谢谢

python xpath web-scraping jupyter
2个回答
0
投票

不确定你提到的页面中的位置。在页面中,这些节点是兄弟节点,而不是节点内的节点。所以只需使用follow-sibling导航到那些节点。

但是对于你提到的DOM,尝试放置索引(例如/ text()[1]或/ text()[2])。


0
投票

我发现同一页面有两个视图:1)对于登录用户2)其他观众

一个带有身份验证信息的简单session.post允许我从头开始获取我想要的数据。

© www.soinside.com 2019 - 2024. All rights reserved.