我已经翻译了PHP Simple HTML DOM查询:
$article->find('td[id$=tdDescription] div a', 1)->plaintext;
Run Code Online (Sandbox Code Playgroud)
到jsoup查询:
resultRow.select("td[id$=tdDescription] > div > a").first().text());
Run Code Online (Sandbox Code Playgroud)
你可以看到我正在接受PHP的第二个(1)结果,目前在jsoup中使用.first()我正在访问第一个结果(0)但是我也想访问第二个结果(1),怎么会我这样做?
我使用Jsoup将表单发布到网站,回复是纯文本,但Jsoup不知道内容类型.因此我使用ignoreContentType(true),因此Jsoup不会因为未知的内容类型而抛出异常.但是我无法弄清楚如何从Jsoup获取原始回复,文本包含一些特殊字符,Jsoup条带,Jsoups也添加了一个body和html标签 - 我不需要它,我只想要原始回复.如何获得原始回复?谢谢!
我使用eclipse版本:Indigo Service Release 2 Build id:20120216-1857.Android版本是2.2.我创建了一个应用来测试连接并解析一个这样的网站:
public class TestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
Document doc = Jsoup.connect("http://example.com/").get();
Elements divs = doc.select("div#test");
for (Element div : divs) {
System.out.println(div.text());
}
} catch (Exception e) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
清单文件:
android:installLocation="preferExternal"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".TestActivity"
android:label="@string/app_name"
android:configChanges="orientation"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category …Run Code Online (Sandbox Code Playgroud) 我正在使用Jsoup.parse()的所有String版本:
parse(String html, String baseUri)
Run Code Online (Sandbox Code Playgroud)
排除连接速度以对其性能进行基准测试.
在一个典型的低端Android手机,呼吁Jsoup.parse()在一个不那么罕见的长维基百科页面(〜600KB)的HTML字符串,需要9秒!
我的客户不愿意接受这种延迟,我想要将Jsoup转储到不同的引擎,自己解析网页(仍然使用Java),或者在NDK中使用一些C/C++解析器(如果可用).
但我更喜欢继续尽可能多地使用Jsoup.
有没有办法加快Jsoup.parse()?
嗨我有Jsoup的问题.
我刮了一页,得到了很多网址.他们有些是像相对URL: ,"../index.php",."../admin""../details.php"
我attr("abs:href")用来获取绝对网址,但这个链接呈现为www.domain.com/../admin.php
我想知道这是不是一个bug.
有没有办法用jsoup获得真正的绝对路径?我该怎么解决这个问题?
我也尝试过absurl("href"),但没有工作.
我只是下载最新版本的jsoup(1.7.1)并按照官方代码(更改了网址).然后我得到"http错误提取网址"
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
loadData();
} catch (IOException e) {
Log.i("error",e.getMessage());
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void loadData() throws IOException {
Document doc = Jsoup.connect("http://forum.mtr.com.hk/search.php?station=30&cat=&x=25&y=2").get();
String title = doc.title();
Log.i("title",title);
}}
Run Code Online (Sandbox Code Playgroud)
我的代码有什么问题?似乎错误只是在Android项目中发生,因为我在Java项目中做同样的事情,工作正常.
注意: - 我已经添加了Internet权限
通过使用Jsoup,我从网站解析HTML以填充ArrayList我需要从网站获取的内容.所以现在我有一个ArrayList充满字符串的东西.我想在该列表中找到包含特定字符串的索引.例如,我知道列表中的某个地方,在某个索引中,有字符串(文字)"Claude",但我似乎无法制作任何代码,找到contains"Claude"中的索引ArrayList...这里是我尝试过但返回-1(未找到):
ArrayList < String > list = new ArrayList < String > ();
String claude = "Claude";
Document doc = null;
try {
doc = Jsoup.connect("http://espn.go.com/nhl/team/stats/_/name/phi/philadelphia-flyers").get();
} catch (IOException e) {
e.printStackTrace();
}
for (Element table: doc.select("table.tablehead")) {
for (Element row: table.select("tr")) {
Elements tds = row.select("td");
if (tds.size() > 6) {
String a = tds.get(0).text() + tds.get(1).text() + tds.get(2).text() + tds.get(3).text() + tds.get(4).text() + tds.get(5).text() + tds.get(6).text();
list.add(a);
int …Run Code Online (Sandbox Code Playgroud) 这是HTML的一部分(为问题简化):
<a href="/auctions?id=4672" class="auction sec">
<div class="progress">
<div class="guarantee">
<img src="/img/ico/2.png" />
</div>
</div> </a>
<a href="/auctions?id=4670" class="auction">
<div class="progress">
<div class="guarantee">
<img src="/img/ico/1.png" />
</div>
</div> </a>
Run Code Online (Sandbox Code Playgroud)
我想得到的是包含拍卖ID的向量,其中显示2.png图像(在这种情况下id = 4672).如何构造Selector查询以获取此信息?
http://jsoup.org/apidocs/org/jsoup/select/Selector.html - 在这里我只能找到如何选择孩子,而不是父母......
任何帮助表示赞赏,包括使用其他库.我尝试过Jsoup,因为它似乎是最受欢迎的.
我正在尝试使用JSoup post方法登录网站.我看到了一些例子,但都没有对我有用.我正在尝试登录:http://ug.technion.ac.il/Tadpis.html 为此,我有以下代码:
String url = "http://ug.technion.ac.il/Tadpis.html";
doc = Jsoup.connect(url).data("userid", "my_user_id")
.data("password", "my_password").data("function","signon").data("submit", "Signon").post();
Run Code Online (Sandbox Code Playgroud)
显然我缺少一些数据(我不知道哪些).另一件我不明白的事情就是网址.检查上面的网址的html我可以看到这一行:
<form action="http://techmvs.technion.ac.il:80/cics/wmn/wmngrad?aapmlkwi&ORD=1&s=1" method="POST" name="SignonForm"
Run Code Online (Sandbox Code Playgroud)
这是与上述不同的网址.我想将其中哪一个用作"连接"方法的url参数?
谢谢!
我有以下代码填写Excel文件,其中包含我使用Jsoup从Internet获得的信息.
package knvbj;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.TextNode;
import org.jsoup.select.Elements;
public class KNVBJ {
private static int Clnummer=1;
public static void main(String[] args) throws IOException {
FileOutputStream out = new FileOutputStream("/Users/muratcanpinar/Downloads/KNVBJ/build/classes/knvbj/ClubInformation.xlsx");
List<String> urlList = ReadXlsx.readXlsx();
urlList.get(1);
for (String url : urlList) {
System.out.println("url: " + url);
}
for (int i = 0; i < urlList.size(); i++) {
Document doc …Run Code Online (Sandbox Code Playgroud)