【问题标题】:Scrape basic value from local text file从本地文本文件中刮取基本值
【发布时间】:2013-09-19 03:08:26
【问题描述】:

我正在寻找从下面的字符串中提取值。源是本地文本文件。什么是最简单/最简单的解决方案。假设编程知识最少:)

<set label=\'Mon+Sep+10\' value=\'48644.54\'/><set label=\'Tue+Sep+11\' value=\'47912.02\'/><set label=\'Wed+Sep+12\' value=\'52219.28\'/><set label=\'Thu+Sep+13\' value=\'49854.88\'/>

【问题讨论】:

  • 你想读取文件的内容吗?
  • 如果源是本地文本文件,那么问题出在哪里,为什么问题上有网页和屏幕抓取标签?
  • 您想提取哪一部分?请提供准确的预期输出。

标签: python excel web-scraping screen-scraping extract


【解决方案1】:

这应该让您对要遵循的程序有所了解:

# Open the local file
fo = open(file-name)

# read the file - this assumes it is the first line
line = fo.readline() 

# close the file
fo.close()

# Use a regular expression to find the specific groups
import re
mos = re.finditer(r"value=\\'([\d.]+)\\'", line)

for m in mos:
    print m.group(1)

给予:

48644.54
47912.02
52219.28
49854.88

re.finditer 返回的mos 使我们能够遍历match 对象,这就是for 循环正在做的事情。 match 对象中感兴趣的方法(函数)是group(),它返回每个括号组中的数据,这些数据在( ) 中匹配。

您是否想要这种形式的循环取决于您以后要对数据做什么。

正则表达式分解如下:

r" " 始终使用带有正则表达式的原始字符串,这样更安全

value=\\' \\' 请注意,两个 \ 字符是必需的。一个 \ 是一个特殊字符,但是添加一个额外的 \ 会删除它的特殊含义。

([\d.]+) 括号将匹配此模式的数据分组。 [\d.]+ 表示“一个或多个数字(数字)或点”。

【讨论】:

    猜你喜欢
    • 2012-02-17
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多