まず、そのリンクまたはそのテーブル行に一意の識別子がないため、それを取得することはcssselect
できず、URLまたはタイトルのどの部分が使用されるかをすでに知らなければ取得することはできません。 。
セクション番号と一致するとします2.1
。ページを見ると、セクション番号は常に行の最初のセルにあります。正しいセルを見つけたら、リンクが含まれているはずの2番目の兄弟に移動し、リンクからURLを取得できます。
>>> import urllib2
>>> from StringIO import StringIO
>>> from lxml import etree
>>> url = "http://www.bnm.gov.my/index.php?ch=109&pg=294&mth=3&yr=2012&eId=box1"
>>> ufile = urllib2.urlopen(url)
>>> root = etree.parse(ufile, etree.HTMLParser())
>>> for e in root.getiterator('tr'):
... fc = e[0] # first child
... if fc.tag == 'td' and fc.text == '2.1':
... link = fc.getnext().getnext()[0] # first child of 2nd sibling
... print link.attrib["href"]
...
files/publication/msb/2012/3/xls/2.1.xls