- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写的代码使用 jsoup 访问网站,查看所有段落标题,然后将它们保存到名为 headingList
的 ArrayList 中。这是棘手的部分。我有一个以 Strings 作为键、以 ArrayLists 作为值的映射。该代码的设计方式要求它转到多个页面。因此,标题数量以及与标题相关的段落数量可能会有很大差异。所以,这里的想法是创建两个 int 值。在查看页面后会设置一个名为 headingAmt
的 int 值,并确定有多少个标题。第二个名为 headCount
的 int 值被初始化为值 1。然后我要做的是设置一个 while 循环,如下所示: while(headCount != headAmt + 1)
并在循环末尾递增它,以便当 headCount
遍历每个标题时终止。在 while 循环期间,我尝试遍历每个段落并将其添加到名为 items
的 ArrayList 中,然后获取 items arrayList 中的内容,然后将其设置为 map 中第一个项目的值。然后,清除 ArrayList,转到下一段,将其中的内容保存到 items
,然后将该 ArrayList 设置为 map 中第二个项目的值,依此类推。我有可以发布的代码,但它很令人困惑,因为有问题的 while 循环已经被重新排列了很多次,因为我无法让它正常工作。
编辑以下代码,以防有人可以提供帮助:
public class Finder {
public Finder(String url) {
String mainURL = "http://www.website.com";
Map<String, List<String> > headMap = new HashMap<>();
ArrayList<String> headingList = new ArrayList<>();
ArrayList<String> items = new ArrayList<>();
int headCounter = 1;
String itemList = "div > div:nth-child(1).category > ul:nth-child(2) > li.item > span";
int headAmt;
Document doc1 = null;
///// Connect to site to get menu /////
try{
doc1 = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36")
.referrer("http://www.google.com")
.get();
}
catch(IOException e){
System.out.println("Can't connect to website");
}
/////// Get headings ////////
Elements head = doc1.select("div > div > div > h3");
////// Loop through headings and add to ArrayList /////
for(Element e: head){
headingList.add(e.text());
}
headAmt = headingList.size();
/*
Here is the problem
*/
while(headCounter != headAmt + 1){
Elements elem = doc1.select("div > div:nth-child("+ headCounter +").category > ul:nth-child(2) > li.item > span");
for (String key : headingList) {
for(Element e : elem){
items.add(e.text());
}
List<String> value = new ArrayList<>(items);
headMap.put(key, value);
}
items.clear();
headCounter++;
}
}
}
}
}
最佳答案
你可以尝试这样的事情:
public class Finder {
public static void main(String[] args) {
new Finder(
"http://www.allmenus.com/ny/new-york/250087-forlinis-restaurant/menu/");
}
public Finder(String url) {
Document doc1 = null;
try {
doc1 = Jsoup
.connect(url)
.userAgent(
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36")
.referrer("http://www.google.com").get();
} catch (IOException e) {
System.out.println("Can't connect to website");
}
Elements elements = doc1.select(".category");
HashMap<String, ArrayList<List<String>>> menu = new HashMap<String, ArrayList<List<String>>>();
for (Element e : elements) {
String name = e.select(".category_head>h3").first().text();
Elements itms = e.select("ul > li");
ArrayList<List<String>> menuItems = new ArrayList<List<String>>();
for (Element it : itms) {
menuItems.add(Arrays.asList(new String[] {
it.select("span").first().text(),
it.select("span").eq(1).text() }));
}
menu.put(name, menuItems);
}
for (String key : menu.keySet()) {
System.out.println(key);
ArrayList<List<String>> lst = menu.get(key);
for (List<String> item : lst) {
System.out.println(" " + item.get(0) + " " + item.get(1));
}
System.out.println("\n");
}
}
}
关于java - Jsoup ArrayList 和 LinkedHashMap 组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30628743/
我是一名 Java 新手,在概念化如何解决尝试创建表示某些分层数据的 LinkedHashMap 的问题时遇到问题。 这是我目前所知的。在此示例中,我有一个 LinkedHashMap,它显示了展平的
我有 LinkedHashMap 列表,如何不可分割地访问每个 LinkedHashMap。 List> listOfRecords 我想要 List abc= new listOsRecords.1
我有一个 LinkedHashMap,其中包含另一个 LinkedHashMap,如下所示: LinkedHashMap> containerMap = new LinkedHashMap>(); 我
我有 2 个 LinkedHashMap, LinkedHashMap, Color> map; LinkedHashMap, Color> totalMap; 两者是相同的,但 map 已通过使用撤
我有一个 map 列表,我需要单独使用其中的每张 map 以用于进一步的目的。这是我正在使用的代码片段 for(int i = 0; i ()); } int j=0; whi
我有一个扩展 LinkedHashMap 的类 (EntireFile)。我尝试转换: EntireFile old = (EntireFile) functionReturningLinkedHas
我有一个构建 LinkedHashMap 的方法,这样我就可以保持顺序。这是我的方法: public class MyClass { public Map buildMap() {
我是 Scala 的新手。我一直在尝试将 java LinkedHashMap 转换为 Scala 中的等效集合(LinkedHashMap?)以保留插入顺序。 尝试按照其他线程中的建议进行操作,但似
我有一个LinkedHashMap看起来像这样(真的不知道如何说明 HashMap): { "10/10/2010 10:10:10" => "SomeText1", "10/10/2019
我被包裹了LinkedHashMap>进入列表; List>> list = new ArrayList(mainCodesMap.entrySet()); 哪个mainCodeMap是 Map> 的
我有两个链接的 HashMap (key - String, value = String[]),它们在两个链接的 HashMap 中具有相同的大小和相同的键,我希望能够根据键,验证一个链接 Hash
假设我有以下数据结构: LinkedHashMap> foodFamilies = new LinkedHashMap<>(); 看起来像这样: {Fruit = [{Name = Apple,
如何对 LinkedHashMap 的 Arraylist 进行排序 前任。 ArrayList> list = new ArrayList>(); LinkedHashMap lin
LinkedHashMap lHashMap = new LinkedHashMap(); lHashMap.put("One", new Integer(1)); lHashMap.
关闭。这个问题需要details or clarity .它目前不接受答案。 想改善这个问题吗?通过 editing this post 添加详细信息并澄清问题. 8年前关闭。 Improve thi
我有一个简单的问题来找到数组 A 中的第一个唯一元素。但是,令我困扰的是使用不同方法的时间复杂度。到目前为止,我已经尝试过这两种方法。 第一种方法: LinkedHashMap> map = new
这个问题已经有答案了: How do I compare strings in Java? (23 个回答) 已关闭 4 年前。 我正在尝试将一对放入 linkedhashmap 中,但是当我放入 2
我需要用Java实现很久以前在Delphi中实现的代码,我尝试使用LinkedHashMap(在Delphi中使用TStringlist),因为我需要在插入元素时获取元素的索引,问题是是它不起作用..
在正确实现 hashCode 和 equals() 的情况下,以下代码会返回 false? myLinkedHashMap.containsKey(myLinkedHashMap.keySet().i
我让 XStream 使用此 xml 为我构建链接 HashMap : #!/masterofsoundtrack/broadcast #!/masterofsoun
我是一名优秀的程序员,十分优秀!