我试着从
https://www.neb.com/tools-and-resources/usage-guidelines/nebuffer-performance-chart-with-restriction-enzymes使用Pythons库lxml,但如果我尝试使用类似提取版本(How to extract tables from websites in Python)的一些代码片段,我会遇到<a>-tags
和此表中显示的图像的问题。。
最后,我想要一个文本文件,其中包含来自NEB的限制性内切酶表的以下列,没有任何格式,只有纯文本:
Enzyme | Sequence | NEBuffer | % Activity in NEBuffer | Heat Inac. | Incu. Temp.
我想尝试提取一行中的每个td,并将信息合并到一个列表条目中:
from urllib2 import urlopen
from lxml import etree
url = "https://www.neb.com/tools-and-resources/usage-guidelines/nebuffer-performance-chart-with-restriction-enzymes"
tree = etree.HTML(urlopen(url).read())
rows = tree.xpath('//*[@id="form1"]/div[2]/div/div/section[@class="chart"]/table/tbody/tr')
cells = [[rows.xpath('//td/a/text()'),
rows.xpath('//td/text()')] for tr in rows]
print cells[1]
但它只在一个条目中混合了所有内容,我不知道如何处理那些特殊字符,如“u”和\u2122 输出的第一行:
[['AatII', u'CutSmart\u2122 Buffer', 'AbaSI', 'NEBuffer 4', 'Acc65I', 'NEBuffer 3.1', 'AccI', u'CutSmart\u2122 Buffer', 'AciI', u'CutSmart\u2122 Buffer',
我想我还没有编码跳过像第2列中的图像这样的列:/
我希望我的问题足够详细,这样你就能够理解我想做什么。你知道吗
首先,
\u2122
只是™
unicode字符的ASCII友好表示。如果你print()
这个字符串,你会看到那个字符而不是那个。所以不用担心!你知道吗那么,您的代码对我不起作用:
正在返回一个列表,这使得无法执行以下操作:
所以我不明白你是怎么得到结果的。即使它是有效的,XPath也有一些你不能得到的东西,那就是
//
使搜索从文档的根开始,这就是为什么你要在td
标记中得到a
标记的所有内容,而不是你所在的tr
标记中的内容。你知道吗相反,如果使用相对xpath,则以下操作将起作用:
但问题是这样做太普通了,您将无法保留元素 按兴趣顺序。可悲的是,没有一种自动的方法可以做到这一点 有趣的东西。你知道吗
然后,您需要获取HTML,并确定您希望图像的
alt
位于 那td
,你想把span
的内容放在另一个里面:下面是从链接的文档中获取感兴趣的值:
得到了所有的领域。你知道吗
最后,为了使其易于重用,我将这样做:
第一次,结果是:
HTH公司
相关问题 更多 >
编程相关推荐