使用lxml和XPath抓取href标题

2024-10-04 03:23:31 发布

您现在位置:Python中文网/ 问答频道 /正文

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值。 我只想提取标题contact@23-de enero.com通过XPath从href值开始,但我不知道从哪里开始我也希望它适用于不同的页面,而不仅仅是这个href value/webpage。

<a href="mailto:contact@23-de-enero.com">contact@23-de-enero.com</a>

我研究了regex,并尝试使用contactemail.textcontent()打印,但它不起作用

有什么建议吗


Tags: 代码importdivcomtreeurlhtmlpage
1条回答
网友
1楼 · 发布于 2024-10-04 03:23:31

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

# 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:")')

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

print [link.text for link in contactemail]

相关问题 更多 >