Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用jsoup获取元素外部但元素旁边的文本 爱德蒙罗斯坦德街10号-马赛13006 Tél:04.33.54.03.09 传真:04.11.54.29.85 电子邮件: Début D'activité:10/06/2013_Java_Html_Jsoup - Fatal编程技术网

Java 使用jsoup获取元素外部但元素旁边的文本 爱德蒙罗斯坦德街10号-马赛13006 Tél:04.33.54.03.09 传真:04.11.54.29.85 电子邮件: Début D'activité:10/06/2013

Java 使用jsoup获取元素外部但元素旁边的文本 爱德蒙罗斯坦德街10号-马赛13006 Tél:04.33.54.03.09 传真:04.11.54.29.85 电子邮件: Début D'activité:10/06/2013,java,html,jsoup,Java,Html,Jsoup,我试图从上面的代码中提取电子邮件、电话、姓名和日期。我已经设法得到了我的名字和电子邮件地址,尽管我被卡住了 我还想得到电话,日期和传真,这似乎是外部因素 <tr class="s"> <td style="text-align: center; width: 100px"></td> <td colspan="3"> <a target="_blank" href="" title="Localiser ave

我试图从上面的代码中提取电子邮件、电话、姓名和日期。我已经设法得到了我的名字和电子邮件地址,尽管我被卡住了

我还想得到电话,日期和传真,这似乎是外部因素

<tr class="s">
    <td style="text-align: center; width: 100px"></td>
    <td colspan="3">
        <a target="_blank" href="" title="Localiser avec Google Maps">
            <img src="images/gm.gif?v=7" alt="Google Maps" class="gm noauto" align="right">
        </a>
        10, rue Edmond Rostand - 13006 MARSEILLE
        <br>
        <strong>Tél :</strong> 04.33.54.03.09<br>                           
        <strong>Fax :</strong> 04.11.54.29.85<br>                           
        <strong>Email :</strong> <a href="mailto:wsedrftg.tgtg.rftg@gmail.com" class="icone email">wsedrftg.tgtg.rftg@gmail.com</a><br>                                                     
        <strong>Début d'activité :</strong> 10/06/2013<br>                          
    </td>
</tr>
for(元素标题:新闻标题)
{
元素trs=标题。选择(“tr.t”);
元素phnDiv=headline.select(“tr.s td:eq(1)”;
对于(int l=0;l
我不认为您可以使用
jsoup
直接获得所需的部件,因为它们不是元素

您可以做的是获取
-元素的
html()
,然后使用正则表达式通过类似的正则表达式获取phone、fax和date

for (Element headline : newsHeadlines)
{
    Elements trs = headline.select("tr.t");
    Elements phnDiv = headline.select("tr.s td:eq(1)");

    for (int l = 0; l < trs.size(); l++)
    {
        j++;
        Elements name = trs.get(l).select("th");
        Elements emailAddress = phnDiv.get(l).select("a");
        Elements phone = phnDiv.get(l).select("strong:contains(Tél :)");
        Elements faxx = phnDiv.get(l).select("strong:contains(Fax :)");
        //Elements debutdactivite = phnDiv.get(l).select("strong:contains(Début d'activité :)");

        String contactName = name.text();
        String email = emailAddress.text();
        String tel = phone.text().replace("Tél :", "");
        String fax = faxx.text().replace("Fax :", "");
        //String date = debutdactivite.text();

        System.out.println(j + " Name : " + contactName + " Email : " + email + " Phone : " + tel + " Fax : " + fax );
    }
}
"<.*Fax.*> (.*?)<br>"
(.*)
“ 你应该这样工作

for (Element headline : newsHeadlines)
{
    Elements trs = headline.select("tr.t");
    Elements phnDiv = headline.select("tr.s td:eq(1)");

    for (int l = 0; l < trs.size(); l++)
    {
        j++;
        Elements name = trs.get(l).select("th");
        Elements emailAddress = phnDiv.get(l).select("a");
        Elements phone = phnDiv.get(l).select("strong:contains(Tél :)");
        Elements faxx = phnDiv.get(l).select("strong:contains(Fax :)");
        //Elements debutdactivite = phnDiv.get(l).select("strong:contains(Début d'activité :)");

        String contactName = name.text();
        String email = emailAddress.text();
        String tel = phone.text().replace("Tél :", "");
        String fax = faxx.text().replace("Fax :", "");
        //String date = debutdactivite.text();

        System.out.println(j + " Name : " + contactName + " Email : " + email + " Phone : " + tel + " Fax : " + fax );
    }
}
"<.*Fax.*> (.*?)<br>"
@测试
公开无效测试(){
最终模式p=Pattern.compile(“(.*?”
”); 最终匹配者m=p.Matcher(“电话:04.11.55.29.85
传真:04.11.55.29.85
”; m、 匹配(); 资产质量(“04.11.54.29.85”,m.group(1)); }
我不认为您可以使用
jsoup
直接获得所需的部件,因为它们不是元素

您可以做的是获取
-元素的
html()
,然后使用正则表达式通过类似的正则表达式获取phone、fax和date

for (Element headline : newsHeadlines)
{
    Elements trs = headline.select("tr.t");
    Elements phnDiv = headline.select("tr.s td:eq(1)");

    for (int l = 0; l < trs.size(); l++)
    {
        j++;
        Elements name = trs.get(l).select("th");
        Elements emailAddress = phnDiv.get(l).select("a");
        Elements phone = phnDiv.get(l).select("strong:contains(Tél :)");
        Elements faxx = phnDiv.get(l).select("strong:contains(Fax :)");
        //Elements debutdactivite = phnDiv.get(l).select("strong:contains(Début d'activité :)");

        String contactName = name.text();
        String email = emailAddress.text();
        String tel = phone.text().replace("Tél :", "");
        String fax = faxx.text().replace("Fax :", "");
        //String date = debutdactivite.text();

        System.out.println(j + " Name : " + contactName + " Email : " + email + " Phone : " + tel + " Fax : " + fax );
    }
}
"<.*Fax.*> (.*?)<br>"
(.*)
“ 你应该这样工作

for (Element headline : newsHeadlines)
{
    Elements trs = headline.select("tr.t");
    Elements phnDiv = headline.select("tr.s td:eq(1)");

    for (int l = 0; l < trs.size(); l++)
    {
        j++;
        Elements name = trs.get(l).select("th");
        Elements emailAddress = phnDiv.get(l).select("a");
        Elements phone = phnDiv.get(l).select("strong:contains(Tél :)");
        Elements faxx = phnDiv.get(l).select("strong:contains(Fax :)");
        //Elements debutdactivite = phnDiv.get(l).select("strong:contains(Début d'activité :)");

        String contactName = name.text();
        String email = emailAddress.text();
        String tel = phone.text().replace("Tél :", "");
        String fax = faxx.text().replace("Fax :", "");
        //String date = debutdactivite.text();

        System.out.println(j + " Name : " + contactName + " Email : " + email + " Phone : " + tel + " Fax : " + fax );
    }
}
"<.*Fax.*> (.*?)<br>"
@测试
公开无效测试(){
最终模式p=Pattern.compile(“(.*?”
”); 最终匹配者m=p.Matcher(“电话:04.11.55.29.85
传真:04.11.55.29.85
”; m、 匹配(); 资产质量(“04.11.54.29.85”,m.group(1)); }
您应该能够使用
nextSibling()
方法获取这些值。它返回一个
节点
,因此您不必担心元素中的值

一旦获取了所需的元素,代码将如下所示:

    @Test
    public void test() {

    final Pattern p = Pattern.compile("<.*?Fax.*?> (.*?)<br>");
    final Matcher m = p.matcher("<strong>Tel :</strong> 04.11.55.29.85<br>    <strong>Fax :</strong> 04.11.55.29.85<br>");
    m.matches();
    assertEquals("04.11.54.29.85", m.group(1));

}

这将直接抓取已选择的phone和faxx元素旁边的节点。

您应该能够使用
nextSibling()
方法获取这些值。它返回一个
节点
,因此您不必担心元素中的值

String tel = phone.nextSibling().toString();
String fax = faxx.nextSibling().toString();
一旦获取了所需的元素,代码将如下所示:

    @Test
    public void test() {

    final Pattern p = Pattern.compile("<.*?Fax.*?> (.*?)<br>");
    final Matcher m = p.matcher("<strong>Tel :</strong> 04.11.55.29.85<br>    <strong>Fax :</strong> 04.11.55.29.85<br>");
    m.matches();
    assertEquals("04.11.54.29.85", m.group(1));

}
这将直接抓取已选择的phone和faxx元素旁边的节点。

for(元素标题:NewsTitles){
String tel = phone.nextSibling().toString();
String fax = faxx.nextSibling().toString();
元素trs=标题。选择(“tr.t”); 元素phnDiv=headline.select(“tr.s td:eq(1)”; 对于(int l=0;l
现在,在我运行完这个之后,我得到了所有的结果,感谢@Justin为我带来了启示。

for(元素标题:新闻标题){
元素trs=标题。选择(“tr.t”);
元素phnDiv=headline.select(“tr.s td:eq(1)”;
对于(int l=0;l