您可以在 Python 中使用lxml
库:
#!/usr/bin/env python
import urllib2
from lxml import html # $ apt-get install python-lxml or $ pip install lxml
page = urllib2.urlopen('http://stackoverflow.com/q/11939631')
doc = html.parse(page).getroot()
div = doc.get_element_by_id('question')
for tr in div.find('table').iterchildren('tr'):
for td in tr.iterchildren('td'):
print(td.text_content()) # process td
如果你熟悉 jQuery;你可以使用pyquery。它在 lxml 之上添加了 jQuery 接口:
#!/usr/bin/env python
from pyquery import PyQuery # $ apt-get install python-pyquery or
# $ pip install pyquery
# d is like the $ in jquery
d = PyQuery(url='http://stackoverflow.com/q/11939631', parser='html')
for tr in d("#question table > tr"):
for td in tr.iterchildren('td'):
print(td.text_content())
虽然在这种情况下pyquery
并没有添加足够的。这是相同的使用 only lxml
:
#!/usr/bin/env python
import urllib2
from lxml import html
page = urllib2.urlopen('http://stackoverflow.com/q/11939631')
doc = html.parse(page).getroot()
for tr in doc.cssselect('#question table > tr'):
for td in tr.iterchildren('td'):
print(td.text_content()) # process td
注意:最后两个示例枚举元素内所有表(不仅仅是第一个)中的行。#question