用于peoplefinders.com的python XPath缺少文本项

时间:2017-02-01 00:26:40

标签: python xpath web-scraping jupyter

我正在尝试从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 as :: before和:: after,当你最小化或最大化时。
  • 运行时网站上缺少文字:

    tree.xpath(&#39; //文本()&#39)

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

谢谢

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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