提取*
问题描述:
http://en.wikipedia.org/wiki/List_of_cities_in_China提取*
所有城市我想提取所有的城市名称,如下图所示:
我用下面的代码(仅用于提取一个字段),其中XPath是副本from chrome
from lxml import html
import requests
page = requests.get('http://en.wikipedia.org/wiki/List_of_cities_in_China')
tree = html.fromstring(page.text)
huabeiTree=tree.xpath('//*[@id="mw-content-text"]/table[3]/tbody/tr[1]/td[1]/a/text()')
print huabeiTree
什么都没有出现。
我的最终目标是提取列表中的所有城市,我可以知道如何实现这一目标吗?
答
from lxml import html
import requests
page = requests.get('http://en.wikipedia.org/wiki/List_of_cities_in_China')
tree = html.fromstring(page.text)
huabeiTree=tree.xpath('//table[@class="wikitable sortable"]')
list_of_cities_table = huabeiTree[0] # table[0] is what we need
# Iterate over the table, get all the <tr> nodes
#then get the values of cities with tr[0][0].text
for tr in list_of_cities_table:
if tr[0].tag == 'td':
print tr[0][0].text
它打印出从北京到诸暨的656个城市名单。
P.S.也许这不太优雅。可以用更好的Xpath
表达来改进。
你的目标是什么!如果你想获得中国的所有城市,有一个更简单的方法来做到这一点 – user3378649 2014-10-30 07:26:25