0

サイトから情報を取得しようとしていて、最近、childNodes[0].data に格納されていることがわかりました。私はPythonを初めて使用し、Webサイトに対してスクリプトを作成しようとしたことはありません.

誰かが私に tmp.xml ファイルを作成してそこから情報を抽出できると言いましたが、ソースコードを取得するだけなので (私には役に立たないと思います)、結果が得られません。

現在のコード:

response = urllib2.urlopen(get_link)
html = response.read()
with open("tmp.xml", "w") as f:
    f.write(html)
dom = parse("tmp.xml")
name = dom.getElementsByTagName("name[0].firstChild.nodeValue")

また、「dom = parse(html)」を使用してみましたが、より良い結果は得られませんでした。

4

1 に答える 1

0

getElementsByTagName()式ではなく要素名を取ります。読み込んでいるページに、タグを含むタグが含まれている可能性はほとんどありません<name[0].firstChild.nodeValue>

HTML をロードする場合は、代わりにBeautifulSoupなどの HTML パーサーを使用してください。XML の場合、ElementTree APIを使用する方が (古風で非常に冗長な) DOM API を使用するよりもはるかに簡単です。

どちらの方法でも、最初にソースをディスクに保存する必要はありません。どちらの API も、 によって返された応答オブジェクトから直接解析できますurllib2

# HTML
import urllib2
from bs4 import BeautifulSoup

response = urllib2.urlopen(get_link)
soup = BeautifulSoup(response.read(), from_encoding=response.headers.getparam('charset'))

print soup.find('title').text

また

# XML
import urllib2
from xml.etree import ElementTree as ET

response = urllib2.urlopen(get_link)
tree = ET.parse(response)

print tree.find('elementname').text
于 2013-11-09T20:27:11.473 に答える