1

私はURLに取り組んでおり、特定のリンクを取得したいと思っています。
しかし、存在するテーブルの数があります。
lxmlを使用して1行または2行のコード内でどのように作業できますか?

url = 'http://www.bnm.gov.my/index.php?ch=109&pg=294&mth=3&yr=2012&eId=box1'

表2.1のExcelをダウンロードしたい
金利:銀行機関

HTMLに多数のテーブルとtdsおよびtrsが存在する場合の作業方法がわかりません。

4

1 に答える 1

1

まず、そのリンクまたはそのテーブル行に一意の識別子がないため、それを取得することは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
于 2012-05-01T07:34:27.273 に答える