我需要从网站上抓取一封电子邮件,但没有 class 名称或类似这样的东西
I need to scrape an email from site but there are no class name or smth like this
我有以下问题报废网站。我有 3700 页个人电子邮件,我需要完成它们。问题是它们不包含任何 class 名称,并且不同页面的 Xpath 可能不同,因为有时在电子邮件之前有 phone 数字,这会破坏一切。我尝试对硒使用不同的解决方案,但它不起作用。你能给我一些关于如何处理这个问题以及我如何抓取它们的建议吗?下面是一些页面示例,其中显示了 html 的不同结构。谢谢!
<div>
<div><i class="fa fa-envelope" style="margin-right: 0.5rem;"></i><span style="unicode-bidi: bidi-override; direction: rtl;"> moc.ttobbanaej@naej</span></div>
<div><a href="http://JeanAbbott.com" target="_blank" class="websiteLink" rel="noopener noreferrer" style="overflow-wrap: normal; text-overflow: ellipsis; overflow: hidden;">JeanAbbott.com</a></div>
<div id="contactInfoWrap" style="margin-top: 10px;">
<div>Jean Abbott</div>
<div>
<div>5 Colonial Circle</div>
<div>Medicine Lake, MN 55441</div>
<div>US</div>
</div>
</div>
</div>
还有一个
<div>
<div><i class="fa fa-phone" style="margin-right: 0.5rem;"></i>202-800-7057</div>
<div><i class="fa fa-envelope" style="margin-right: 0.5rem;"></i><span style="unicode-bidi: bidi-override; direction: rtl;"> moc.tsiugnilde@ahsynal</span></div>
<div><a href="http://edlinguist.com/" target="_blank" class="websiteLink" rel="noopener noreferrer" style="overflow-wrap: normal; text-overflow: ellipsis; overflow: hidden;">edlinguist.com/</a></div>
<div id="contactInfoWrap" style="margin-top: 10px;">
<div>LaNysha Adams</div>
<div>
<div>80 M St SE</div>
<div>1st Floor</div>
<div>Washington, DC 20003</div>
<div>US</div>
</div>
</div>
</div>
我需要的元素如下所示
<span style="unicode-bidi: bidi-override; direction: rtl;"> moc.ttobbanaej@naej</span>
//div[contains(.,"@")]/span
上面的 xpath 表达式将 select 您想要的 html 部分:
<span style="unicode-bidi: bidi-override; direction: rtl;"> moc.tsiugnilde@ahsynal</span>
并且所需的文本节点值为:moc.tsiugnilde@ahsynal
好像 email-addresses 是镜像的。并解决有样式信息:unicode-bidi: bidi-override; direction: rtl;
意味着 moc.tsiugnilde@ahsynal
是 laysha@edlinguist.com
.
所以最好只使用这个 XPath:
//span[style='unicode-bidi: bidi-override; direction: rtl;']
我有以下问题报废网站。我有 3700 页个人电子邮件,我需要完成它们。问题是它们不包含任何 class 名称,并且不同页面的 Xpath 可能不同,因为有时在电子邮件之前有 phone 数字,这会破坏一切。我尝试对硒使用不同的解决方案,但它不起作用。你能给我一些关于如何处理这个问题以及我如何抓取它们的建议吗?下面是一些页面示例,其中显示了 html 的不同结构。谢谢!
<div>
<div><i class="fa fa-envelope" style="margin-right: 0.5rem;"></i><span style="unicode-bidi: bidi-override; direction: rtl;"> moc.ttobbanaej@naej</span></div>
<div><a href="http://JeanAbbott.com" target="_blank" class="websiteLink" rel="noopener noreferrer" style="overflow-wrap: normal; text-overflow: ellipsis; overflow: hidden;">JeanAbbott.com</a></div>
<div id="contactInfoWrap" style="margin-top: 10px;">
<div>Jean Abbott</div>
<div>
<div>5 Colonial Circle</div>
<div>Medicine Lake, MN 55441</div>
<div>US</div>
</div>
</div>
</div>
还有一个
<div>
<div><i class="fa fa-phone" style="margin-right: 0.5rem;"></i>202-800-7057</div>
<div><i class="fa fa-envelope" style="margin-right: 0.5rem;"></i><span style="unicode-bidi: bidi-override; direction: rtl;"> moc.tsiugnilde@ahsynal</span></div>
<div><a href="http://edlinguist.com/" target="_blank" class="websiteLink" rel="noopener noreferrer" style="overflow-wrap: normal; text-overflow: ellipsis; overflow: hidden;">edlinguist.com/</a></div>
<div id="contactInfoWrap" style="margin-top: 10px;">
<div>LaNysha Adams</div>
<div>
<div>80 M St SE</div>
<div>1st Floor</div>
<div>Washington, DC 20003</div>
<div>US</div>
</div>
</div>
</div>
我需要的元素如下所示
<span style="unicode-bidi: bidi-override; direction: rtl;"> moc.ttobbanaej@naej</span>
//div[contains(.,"@")]/span
上面的 xpath 表达式将 select 您想要的 html 部分:
<span style="unicode-bidi: bidi-override; direction: rtl;"> moc.tsiugnilde@ahsynal</span>
并且所需的文本节点值为:moc.tsiugnilde@ahsynal
好像 email-addresses 是镜像的。并解决有样式信息:unicode-bidi: bidi-override; direction: rtl;
意味着 moc.tsiugnilde@ahsynal
是 laysha@edlinguist.com
.
所以最好只使用这个 XPath:
//span[style='unicode-bidi: bidi-override; direction: rtl;']