使用lxml和XPath废弃href标题

时间:2016-03-09 02:37:18

标签: python regex xpath lxml

eclipse -vm C:\Program Files (x86)\Java\jdk1.8.0_60\bin\javaw.exe

我试图从公司目录中的900个不同页面抓取电子邮件。 HTML代码在每个页面中都相对类似。但是,Contactemail会返回元素值。上面的XPath是下面代码的href值。 我想通过XPath从href值中提取只是标题 contact@23-de-enero.com ,但我不知道在哪里非常开始。 我也希望这样能用于不同的页面,而不仅仅是这个href值/网页。

1.8.0_60

我已查看正则表达式,并尝试使用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 进行打印,但它无法正常工作。

任何提示?

1 个答案:

答案 0 :(得分:0)

有一些可能的方法可以提取相同的值,即电子邮件地址,例如:

# get email address from inner text of the element :
print contactemail[0].text

# get email address from href attribute + substring-after() :
print contactemail[0].xpath('substring-after(@href, "mailto:")')

如果您在一个a父元素中有多个address元素,则可以使用列表推导语法:

print [link.text for link in contactemail]