gpt4 book ai didi

java - 如何使用 Java (Android) 从网站抓取数据?

转载 作者:行者123 更新时间:2023-12-01 04:55:58 24 4
gpt4 key购买 nike

我的 Android 应用将从电话号码获取运营商信息。我打算使用 Jsoup (或另一个 Java HTML 解析器)来抓取表格中显示的运营商信息。

我正在尝试从 fonefinder.net 中抓取内容

查询URL格式为:

http://www.fonefinder.net/findome.php?npa=**first 3 digits**&nxx=**next 3 digits**&thoublock=**final 4 digits**

页面的 HTML 是一个简单的表格(见下文)。我正在尝试从第 2 行第 5 列中提取数据,其中链接以格式

出现
http://fonefinder.net/(CARRIER_NAME).php

其中 CARRIER_NAME 是一个类似“verizon”的值。我需要帮助弄清楚如何提取这些数据。

<table border="3" cellspacing="2" cellpadding="2" bgcolor="#FFFFCC">
<tbody>
<tr bgcolor="#7093DB" align="CENTER">
<th>
Area Code
</th>
<th>Prefix</th>
<th>
City/Switch Name
<br>
(Click for city search)
</th>
<th>
State/Prov.
<br>
Area Map
</th>
<th>
Telephone Company
<br/>
Web link
</th>
<th>
Telco
<br/>
Type
</th>
<th>
Map/Zip
<br/>
Detail
</th>
</tr>
<tr>
<td>
**first 3 digits**
</td>
<td>
**next 3 digits**
</td>
<td>
City Name
</td>
<td>
State Name
</td>
<td>
<a href="http://fonefinder.net/CARRIER_NAME.PHP">carrier name</a>
</td>
<td>WIRELESS PROV</td>
<td>
map
</td>
</tr>
</tbody>
</table>

最佳答案

我编写的代码大量使用了 Jsoup 的选择器语法来按名称解析标签,但您也可以按 CSS 类、id、属性等进行解析。 Jsoup selector syntax documentation有您可以使用的选择器的完整列表。

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class StackOverflowQuestion {

public static void main(String[] args) {

try {
// get the tables on this page, note I masked the phone number
Document doc = Jsoup.connect("http://www.fonefinder.net/findome.php?npa=###&nxx=###&thoublock=####").get();
Elements tables = doc.select("table");

// get the second table, 0 indexed
Element secondTable = tables.get(1);

// get the columns
Elements tds = secondTable.select("td");

//get the 5th column, 0 indexed
Element fifthTd = tds.get(4);

//get the link in this column
Element link = fifthTd.select("a").first();

//print out the URL
System.out.println(link.attr("href"));

} catch (IOException e) {
e.printStackTrace();
}
}
}

关于java - 如何使用 Java (Android) 从网站抓取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14142992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com