1
from lxml import html
import requests
for i in range(44,530): # Number of pages plus one
url = "http://postscapes.com/companies/r/{}".format(i)
page = requests.get(url)
tree = html.fromstring(page.content)
contactemail = tree.xpath('//*[@id="rt-mainbody"]/div/div/div[2]/div[4]/address/a')
print contactemail
我試圖從公司目錄中的900個不同頁面中刮取電子郵件。 HTML代碼在每個頁面中都相對相似。但是,Contactemail返回元素值。上面的XPath是以下代碼的href值。 我想提取只是標題[email protected]從href值通過XPath,但我不知道從哪裏開始。 我也希望這適用於不同的網頁,而不僅僅是這個href值/網頁。使用lxml和XPath刪除href標題
<a href="mailto:[email protected]">[email protected]</a>
我看着正則表達式,並試圖contactemail.textcontent()
打印但它不工作。
任何提示?
嘿har07,感謝您的回覆。 前兩個返回索引錯誤,列表超出頁面。 最後一個工作,但它只返回None。 –
看起來像您的XPath無法找到目標元素。錯誤發生時URL中的數字是多少?嘗試將XPath簡化爲:'// * [@ id =「rt-mainbody」] // address/a' – har07
我簡化了xpath。它仍然返回None。 關於索引錯誤發生的位置,它從http://postscapes.com/companies/r/44-開始,一直到530. 我嘗試了其他幾種技術 'for elt in contactemail: print(elt.text_content())' 但它開始返回奇怪的值,其中包含電子郵件保護字。 –