【发布时间】:2015-06-15 18:46:59
【问题描述】:
这是来自 Google Chrome 中 http://chem.sis.nlm.nih.gov/chemidplus/rn/75-07-0 的一些 HTML 代码,我想为某个项目解析网站。
<div id="names">
<h2>Names and Synonyms</h2>
<div class="ds"><button class="toggle1Col"title="Toggle display between 1 column of wider results and multiple columns.">↔</button>
<h3 id="yui_3_18_1_3_1434394159641_407">Name of Substance</h3>
<ul>
<li id="ds2">
`` <div>Acetaldehyde</div>
</li>
</ul>
</div>
我编写了一个 python 脚本来帮助我做这样的事情,方法是在其中一个部分下抓取名称,但它只是没有返回名称。我认为这是我的 xpath 查询,建议?
from lxml import html
import requests
import csv
names1 = []
page = requests.get('http://chem.sis.nlm.nih.gov/chemidplus/rn/75-07-0')
tree = html.fromstring(page.text)
//This will grab the name data
names = tree.xpath('//*[@id="yui_3_18_1_3_1434380225687_700"]')
//Print the name data
print 'Names: ', names
//Convert the data into a string
names1.append(names)
//Print the bit length
print len(names1)
//Write it to csv
b = open('testchem.csv', 'wb')
a = csv.writer(b)
a.writerows(names1)
b.close()
print "The end"
【问题讨论】:
-
我对pyton一无所知,但可能你需要添加
/text()- //*[@id="yui_3_18_1_3_1434394159641_407"]/text() -
是的,我试过了,但没用。
-
我打开了你的链接,那里没有这样的元素。
标签: python xml parsing xpath lxml