擅长:python、mysql、java
<p>以下是一些注意事项:</p>
<ul>
<li><p>XPath索引从<code>1</code>开始,而不是<code>0</code>。这就是为什么第一个数据行的条目是空的。</p></li>
<li><p>可以使用Python的<code>strip()</code>或XPath的<code>normalize-space()</code>删除行号文本周围的空格</p></li>
</ul>
<p>我建议迭代行(<code>tr</code>),并在每次迭代中从当前行获取所需的所有信息:</p>
<pre><code>page = requests.get('http://www.atpworldtour.com/en/rankings/singles')
tree = html.fromstring(page.content)
outfile = open("./tennis.csv", "wb")
writer = csv.writer(outfile)
rows = tree.xpath('//*[@id="rankingDetailAjaxContainer"]/table/tbody/tr')
writer.writerow(["Rank", "Name"])
for row in rows:
no = row.xpath('td[1]/text()')[0].strip()
name = row.xpath('td[4]/a/text()')[0]
writer.writerow([no, name])
outfile.close()
</code></pre>