- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想解析雅虎财经的整个表格。据我了解,“tbody”和“thead”标签不是由 lxml 注册的,而是作为附加 TR 注册的,因此我切换了 xpath:
/html/body/div[4]/div[4]/table[2]/tbody/tr[2]/td/table[2]/tbody/tr/td/table/tbody
下面的代码中看到的内容
url = 'http://finance.yahoo.com/q/is?s=MMM+Income+Statement&annual'
tree = html.parse(url)
tick_content = [td.text_content() for td in tree.xpath('/html/body/div[4]/div[4]/table[2]/tr[3]/td/table[2]/tr[1]/td/table/td[1]')]
print(tick_content)
我返回一个空白屏幕。有没有特殊的方法来解析表orrrr?
最佳答案
您可以直接搜索带有yfnc_tabledata1
的表,而不是使用Chrome生成的巨大的长XPath。类(class);只有一个:
>>> tree.xpath("//table[@class='yfnc_tabledata1']")
[<Element table at 0x10445e788>]
访问您的<td>
从那里:
>>> tree.xpath("//table[@class='yfnc_tabledata1']//td[1]")[0].text_content()
'Period EndingDec 31, 2014Dec 31, 2013Dec 31, 2012\n \n Total Revenue\n \n \n \n 31,821,000\xa0\xa0\n \n \n \n 30,871,000\xa0\xa0\n \n \n \n 29,904,000\xa0\xa0\n \n Cost of Revenue16,447,000\xa0\xa016,106,000\xa0\xa015,685,000\xa0\xa0\n \n Gross Profit\n \n \n \n 15,374,000\xa0\xa0\n \n \n \n 14,765,000\xa0\xa0\n \n \n \n 14,219,000\xa0\xa0\n \n \n \n Operating Expenses\n \n Research Development1,770,000\xa0\xa01,715,000\xa0\xa01,634,000\xa0\xa0\n \n Selling General and Administrative6,469,000\xa0\xa06,384,000\xa0\xa06,102,000\xa0\xa0\n \n Non Recurring\n -\n \xa0\n -\n \xa0\n -\n \xa0\n \n Others\n -\n \xa0\n -\n \xa0\n -\n \xa0\n \n \n \n Total Operating Expenses\n -\n \xa0\n -\n \xa0\n -\n \xa0\n \n Operating Income or Loss\n \n \n \n 7,135,000\xa0\xa0\n \n \n \n 6,666,000\xa0\xa0\n \n \n \n 6,483,000\xa0\xa0\n \n \n \n Income from Continuing Operations\n \n Total Other Income/Expenses Net33,000\xa0\xa041,000\xa0\xa039,000\xa0\xa0\n \n Earnings Before Interest And Taxes7,168,000\xa0\xa06,707,000\xa0\xa06,522,000\xa0\xa0\n \n Interest Expense142,000\xa0\xa0145,000\xa0\xa0171,000\xa0\xa0\n \n Income Before Tax7,026,000\xa0\xa06,562,000\xa0\xa06,351,000\xa0\xa0\n \n Income Tax Expense2,028,000\xa0\xa01,841,000\xa0\xa01,840,000\xa0\xa0\n \n Minority Interest(42,000)(62,000)(67,000)\n \n \n \n Net Income From Continuing Ops4,956,000\xa0\xa04,659,000\xa0\xa04,444,000\xa0\xa0\n \n Non-recurring Events\n \n Discontinued Operations\n -\n \xa0\n -\n \xa0\n -\n \xa0\n \n Extraordinary Items\n -\n \xa0\n -\n \xa0\n -\n \xa0\n \n Effect Of Accounting Changes\n -\n \xa0\n -\n \xa0\n -\n \xa0\n \n Other Items\n -\n \xa0\n -\n \xa0\n -\n \xa0\n \n Net Income\n \n \n \n 4,956,000\xa0\xa0\n \n \n \n 4,659,000\xa0\xa0\n \n \n \n 4,444,000\xa0\xa0\n \n Preferred Stock And Other Adjustments\n -\n \xa0\n -\n \xa0\n -\n \xa0\n \n Net Income Applicable To Common Shares\n \n \n \n 4,956,000\xa0\xa0\n \n \n \n 4,659,000\xa0\xa0\n \n \n \n 4,444,000\xa0\xa0\n \n '
>>> print(tree.xpath("//table[@class='yfnc_tabledata1']//td[1]")[0].text_content())
Period EndingDec 31, 2014Dec 31, 2013Dec 31, 2012
Total Revenue
31,821,000
30,871,000
29,904,000
Cost of Revenue16,447,000 16,106,000 15,685,000
Gross Profit
15,374,000
14,765,000
14,219,000
Operating Expenses
Research Development1,770,000 1,715,000 1,634,000
Selling General and Administrative6,469,000 6,384,000 6,102,000
Non Recurring
-
-
-
Others
-
-
-
Total Operating Expenses
-
-
-
Operating Income or Loss
7,135,000
6,666,000
6,483,000
Income from Continuing Operations
Total Other Income/Expenses Net33,000 41,000 39,000
Earnings Before Interest And Taxes7,168,000 6,707,000 6,522,000
Interest Expense142,000 145,000 171,000
Income Before Tax7,026,000 6,562,000 6,351,000
Income Tax Expense2,028,000 1,841,000 1,840,000
Minority Interest(42,000)(62,000)(67,000)
Net Income From Continuing Ops4,956,000 4,659,000 4,444,000
Non-recurring Events
Discontinued Operations
-
-
-
Extraordinary Items
-
-
-
Effect Of Accounting Changes
-
-
-
Other Items
-
-
-
Net Income
4,956,000
4,659,000
4,444,000
Preferred Stock And Other Adjustments
-
-
-
Net Income Applicable To Common Shares
4,956,000
4,659,000
4,444,000
关于Python 3.4 : LXML : Parsing Tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30801462/
我发现在使用parse-node包时,不能再使用Parse.Cloud.httpRequest了。我也知道 Parse 的 Image 对象将不可用。 到目前为止,我已经能够用原生的替换一些 Pars
关闭。这个问题是opinion-based 。目前不接受答案。 已关闭 9 年前。 已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 我有一个函
开源 Parse Server 是否包含用于配置新 Parse 实例的 Schema API?我试图消除手动创建应用程序的需要。 这是通过 Parse.com 提供的架构 API http://blo
我想从我的云代码发出一个 http 请求,该请求在我的客户端被调用。 最佳答案 一开始我发现这有点令人困惑,所以希望这会有所帮助。 在您的云代码中main.js Parse.Cloud.define(
这部分代码应该读入两个或更多数字(省略主 io 函数),然后是一个“+”来给出总和。使用有理数是因为稍后我将进行乘法和其他此类操作。 data Expression = Number Rationa
我似乎找不到任何关于此的官方信息:Does Parse.Config work on Parse Server?它曾经在 Parse.com 上工作,但是当我尝试迁移到 Parse.Server 时,
我正在尝试找到使用 Parse.com 添加密码要求的最佳程序。似乎最简单的方法是在保存用户数据之前使用云功能执行。我唯一的警告是,只有当密码与数据库中存储的密码不同或者用户不存在于数据库中时,我才想
我是 android 开发、应用程序开发和一般开发的初学者,我正在尝试为我的 android 应用程序设置后端数据库。我决定使用一个名为 back4app 的服务,以便获得更加用户友好的数据库体验,因
我目前正在尝试将 Facebook 登录功能添加到我的应用程序。 根据Android文档,当我添加 compile 'com.parse:parsefacebookutils-v4-android:1
我正在尝试使用 Rebol 2/3 从字符串中解析货币值,货币值的格式为: 10,50 欧元或 10,50 欧元 我在浏览了所有 PARSE 文档后想出了这段代码,我可以在 Red 中找到它,但在 R
代码: DateTimeFormat dateFormat = DateTimeFormat .getFormat("EEE MMM dd HH:mm:ss zzz y
我不再在 Parse 上看到用于导入 JSON 或 CSV 文件的导入按钮。他们是否将其移动到某个地方,或者不再可能导入这些文件类型? 最佳答案 官方原因是这样的: “[导入类按钮] 几天前被删除,因
我正在使用 PHP 从我的服务器检索一些数据。我想在 javascript 应用程序中使用这些数据,所以我正在做这样的事情: var polylines = ; $polylines 只是一个 PHP
我已经开始使用 .NET 4 System.Numerics.BigInteger Structure我遇到了一个问题。 我正在尝试解析一个包含无符号(正数)的十六进制数字的字符串。我得到一个负数。
我正在使用 PHP 从我的服务器检索一些数据。我想在 javascript 应用程序中使用这些数据,所以我正在做这样的事情: var polylines = ; $polylines 只是一个 PHP
在 Go 中,尝试将字符串转换为 time.Time 时,使用时间包的 Parse 方法不会返回预期结果。似乎问题出在时区。我想更改为 ISO 8601 结合 UTC 日期和时间。 package m
我正在尝试将此字符串模式 "4-JAN-12 9:30:14" 解析为 time.Time。 尝试了 time.Parse("2-JAN-06 15:04:05", inputString) 和许多其
从云代码和解析开始。使用this . 如何删除所有 Parse 项目以便开始创建新项目?我收到以下错误: “您想要创建一个新应用程序,还是将 Cloud Code 添加到现有应用程序中?输入“(n)e
我在解析云代码时有这个功能: Parse.Cloud.define("testfunction", function(request, response) { var username = r
最近,我在 parse.com 上做了一些测试。我现在面临在后台作业中使用 Parse.Object.saveAll 的问题。 从 parse.com 的文档来看,后台作业可以运行 15 分钟。我现在
我是一名优秀的程序员,十分优秀!