【发布时间】:2018-12-23 13:49:09
【问题描述】:
我正在尝试使用 lxml 提取网页上特定标签的内容,即在 Indeed.com 上。
示例页面:link
我正在尝试提取公司名称和职位名称。 Chrome显示公司名称位于
"//*[@id='job-content']/tbody/tr/td[1]/div/span[1]"
职位名称位于
"//*[@id='job-content']/tbody/tr/td[1]/div/b/font"
这段代码尝试从本地保存和解析的页面副本中提取这些值:
import lxml.html as h
xslt_root = h.parse("Temp/IndeedPosition.html")
company = xslt_root.xpath("//*[@id='job-content']/tbody/tr/td[1]/div/span[1]/text()")
position = xslt_root.xpath("//*[@id='job-content']/tbody/tr/td[1]/div/b/font/text()")
print(company)
print(position)
但是,打印命令返回空字符串,这意味着没有提取任何内容!
发生了什么事?我使用了正确的标签吗?我不认为这些是动态生成的,因为页面在禁用 javascript 的情况下正常加载。
对于提取这两个值的任何帮助,我将不胜感激。
【问题讨论】:
-
只是想指出,确实在他们的条款和条件中指定“除非您在与 Indeed 的单独书面协议中明确允许这样做,否则您同意您不会抓取、抓取、复制、复制、复制、出售、交易或转售本网站以用于任何目的”。只是把这个扔出去。我仍然会调查这个问题,假设你不会在确实的法律设置范围之外使用它。
-
同意。我想指出这个相关的元帖子:meta.stackoverflow.com/questions/329321/…
-
这是一个公平的观察,@dennlinger。我不会试图摆脱这种困境,只是承认我正在编写一个生成部分个性化求职信的程序。它确实不在循环中这样做,它基本上自动化了我一直在使用的复制粘贴过程。我想这属于“抓取”,但我的复制粘贴过程也可能如此。