以下是表格的一部分:
<p align="center"><font size="1" color=red> 16 </font></td>
我需要从红色元素中获取url:
Document document = Jsoup.connect(siteUrl).execute().parse();
Element table = document.select("table").get(2);
Elements links = table.getElementsByTag("a");
String date = table.select("*[color*='red']").first().toString();
System.out.println("Date: " + date);
for (Element link: links) {
String url = link.attr("href");
String text = link.text();
System.out.println(text + ", " + url);
}
我决定使用jsoup库,这就是我尝试做的事情:
import pandas as pd
import itertools
df = pd.DataFrame([[1, 'A'], [1, 'B'], [1, 'A'], [2, 'B'], [3, 'B'], [2, 'B']], columns=['user', 'category'])
result = df.groupby('category')['user'].agg(lambda x: set(x)).to_dict()
for i, j in itertools.combinations(result, 2):
result[x] = result[i] & result[j]
result = {k: len(v) for k, v in result.items()}
print(result)
# output
# {'A': 1, 'B': 3, ('A', 'B'): 1}
但是这样我就可以得到这个元素和所有链接。而且我认为要获取所有网址列表并使用“日期”查找所需内容并不是最聪明的事情。那么有人可以建议,我如何应对这项任务?
答案 0 :(得分:1)
我假设示例中的HTML是拼写错误,因为它格式不正确(即a
和p
标记缺少关闭标记。)
如果HTML有效,则在选择表元素后,以下代码将获得所需的URL:
Element redElement = table.select("*[color*='red']").first();
// Get the sibling (a tag) of its parent (p tag) and get the value of href.
String url = redElement.parent().previousElementSibling().attr("href");
System.out.println("URL: " + url);