使用java从html文件中提取文本
我在一个文本爬虫工作,我需要从几个网站提取特定的文本。我使用了jsoup html解析器:使用java从html文件中提取文本,java,html,jsoup,Java,Html,Jsoup,我在一个文本爬虫工作,我需要从几个网站提取特定的文本。我使用了jsoup html解析器: Document doc = Jsoup.connect("http://www.aljazeera.net/programs/behindthenews/2014/11/9/%D8%A3%D8%B3%D8%A8%D8%A7%D8%A8-%D9%88%D8%AF%D9%84%D8%A7%D9%84%D8%A7%D8%AA-%D8%A7%D8%B3%D8%AA%D9%85%D8%B1%D8%A7%D8%B1
Document doc = Jsoup.connect("http://www.aljazeera.net/programs/behindthenews/2014/11/9/%D8%A3%D8%B3%D8%A8%D8%A7%D8%A8-%D9%88%D8%AF%D9%84%D8%A7%D9%84%D8%A7%D8%AA-%D8%A7%D8%B3%D8%AA%D9%85%D8%B1%D8%A7%D8%B1-%D8%A7%D9%84%D8%B5%D8%AF%D8%A7%D9%85-%D8%A8%D8%AC%D8%A7%D9%85%D8%B9%D8%A7%D8%AA-%D9%85%D8%B5%D8%B1").get();
Elements ps = doc.select("p");
String s = Jsoup.parse(ps.text()).text();
PrintWriter out = new PrintWriter("newFile.txt", "UTF-8");
out.write(s);
out.close();
此算法获取一个不需要的文本,需要的文本在此标记下
当我将选择更改为Elements ps=doc.select(“p dir=rtl”)代码>,它返回一个编译错误
有没有办法让它只选择这个想要的标签?下面的代码将捕获所有的标签:
String uri = URI.create("example.com").toASCIIString();
Document doc = Jsoup.connect(uri).get();
Elements pElements = doc.select("p[dir=rtl]");
StringBuilder sb = new StringBuilder();
for (Element element : pElements) {
sb.append(element.text());
}
PrintWriter out = new PrintWriter("newFile.txt", "UTF-8");
out.write(sb.toString());
out.close();
唯一棘手的是,您需要使用编码的URL(而不是带有阿拉伯字母的URL)
编辑1:
URL编码可以在代码中完成。以下代码将捕获所有
标记:
String uri = URI.create("example.com").toASCIIString();
Document doc = Jsoup.connect(uri).get();
Elements pElements = doc.select("p[dir=rtl]");
StringBuilder sb = new StringBuilder();
for (Element element : pElements) {
sb.append(element.text());
}
PrintWriter out = new PrintWriter("newFile.txt", "UTF-8");
out.write(sb.toString());
out.close();
唯一棘手的是,您需要使用编码的URL(而不是带有阿拉伯字母的URL)
编辑1:
URL编码可以在代码中完成
需要的文本在此标记下
您需要使用以下CSS查询:
p/*选择任意p元素*/
[dir=rtl]/*。。。将“dir”属性设置为“rtl”*/
@纳维德沙基巴普尔酒店
上面的url需要编码。我们将使用URI#create helper方法。在返回的URI
实例上,我们将调用toasitring
方法
URI uri = URI //
.create("http://www.aljazeera.net/programs/behindthenews/2014/11/9/أسباب-ودلالات-استمرار-الصدام-بجامعات-مصر") //
.toASCIIString();
以下是一个工作示例代码:
示例代码
输出(内容剥离)
找到子链接:5
*****
(...)
-------------------------
(...)
-------------------------
(...)
需要的文本在此标记下
您需要使用以下CSS查询:
p/*选择任意p元素*/
[dir=rtl]/*。。。将“dir”属性设置为“rtl”*/
@纳维德沙基巴普尔酒店
上面的url需要编码。我们将使用URI#create helper方法。在返回的URI
实例上,我们将调用toasitring
方法
URI uri = URI //
.create("http://www.aljazeera.net/programs/behindthenews/2014/11/9/أسباب-ودلالات-استمرار-الصدام-بجامعات-مصر") //
.toASCIIString();
以下是一个工作示例代码:
示例代码
输出(内容剥离)
找到子链接:5
*****
(...) -------------------------
(...) ------------------------- (...)
您确定网站有
标签吗?我在网页源中找不到该标记。@NavidShakibapour是的,该标记不在主链接中,而是在其子链接中-links@JeffreyBosboom谢谢,这很有帮助,但是你能帮我选择哪种语法吗?因为我不知道该选择哪种语法。你可以更新问题,使其具有你希望的
标记的确切链接吗?你确定该网站有
标记吗?我在网页源中找不到该标记。@NavidShakibapour是的,该标记不在主链接中,而是在其子链接中-links@JeffreyBosboom谢谢,这很有帮助,但是你能帮我选择哪种语法吗?因为我不知道该选择哪种语法。你能更新问题,使其具有你希望的
标记的确切链接吗?