まず最初に最初のpythonとlxmlの持つ要素のテキストを変更、私はすでにStackOverflowの上のpythonとlxmlのに関する多くの質問があります知っている、と私はすべてではない場合は、それらのほとんどを読みになりました。今私はこの質問でより包括的な答えを探しています。要素を取得し、
私はいくつかのHTML変換を行っています。私は文法的にHTMLを解析し、次に内容をhref
,img
などに変更する必要があります。
これは私が今持っているものの簡易版である:
with open(fileName, "r") as inFile:
inputS = inFile.read()
myTree = fromstring(inputS) #parse etree from HTML content
breadCrumb = myTree.get_element_by_id("breadcrumb") #a list of elements with matching id
breadCrumbContent = breadCrumb[0].text_content().strip() #text content of bread crumb
h1 = myTree.xpath('//h1') #another way, get elements by xpath
h1Content = h1[0].text_content().strip() #get text content
getTail = myTree.cssselect('table.results > tr > td > a + span + br') #get list of elements using css select
だから基本的には私が現時点で知っているものです。 lxmlを使用して要素/属性を取得する他の方法はありますか?私は彼らがそれを行う最善の方法ではないかもしれないが、私と一緒に耐えることを知っている、私はこの全体に新しいです。
以下は私がしたいことです。私が持っている:
<img src="images/macmail10.gif" alt="" width="555" height="485" /><br />
<a href="http://www.some_url.com/faq/general_faq.html" target="_blank">General FAQs page</a>
彼らは全くdiv
、p
のような他の要素の中にネストすることができます。私がしたいのは、それらの要素をプログラム的に探すことです。画像のために、私は、src
を抽出し、それをいくつかの操作を行うと、他の何か(src="something_images.jpg"
にたとえば、src="images/something.jpg"
)にsrc
を設定し、href
と同じものにしたい、私はそれが他の場所を指すようにするために、それを変更したいです。
、私はまた、例えば、それを単純化するために木からいくつかの要素を削除する:
<head>
<title>something goes here</title>
</head>
<div>
<p id="some_p"> Some content </p>
</div>
私はヘッドノードとのdivを削除したいと思う、私は取得することができるだろうid="some_p"
とp、親要素をつかむための方法はありますか?それらの要素を削除する方法もありますか? (この場合はparent
を取得し、それを削除し、head
探しhead
を削除しid="some_p"
を探します。
を================ ==================================
UPDATE:私はすでにこれに対する解決策を発見し、すでに完成lxml.etreeを使用してコーディング。stackoverflowのが私を許す限り、私は、すぐにその答えを掲載します。私は本当に彼らはHTMLの解析に対処しなければならないとき、この質問に対する答えは、他の人に助けになることを願っています!
+1明確な質問です。 (と正規表現を使用しようとしていない!) –