http://en.wikipedia.org/wiki/List_of_cities_in_China
我想提取所有城市名称,如下所示:
我使用以下代码(仅提取一个字段),其中xpath是从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
什么都没有出现。
我的最终目标是提取列表中的所有城市,我可以知道如何实现这一目标吗?
答案 0 :(得分:1)
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
表达来改进。