尝试使用class Investment(models.Model):
member = models.ForeignKey(Member)
project = models.ForeignKey(Project)
time = models.DateField(default=datetime.now)
class InvestmentSerializer(serializers.ModelSerializer):
class Meta:
model = Investment
fields = ('time','member', 'project')
获取数据,似乎Jsoup 1.10.3
选择器无法正常工作。
我尝试了nth-child,但似乎没有获得第二个表(table:nth-child(2))。
我的选择器是否正确?
eq
在下面的示例中,尝试提取值232323
答案 0 :(得分:1)
您可能正在努力解决几个问题。首先,我认为您不想使用:nth-child(an+b)
选择器。以下是jsoup docs:
:nth-child(an + b)元素,在文档树中具有+ b-1个兄弟元素,对于n的任何正整数或零值,并且具有父元素。对于大于零的a和b的值,这有效地将元素的子元素划分为元素组(最后一组取剩余元素),并选择每个组的第b个元素。例如,这允许选择器寻址表中的每隔一行,并且可以用于以四个周期交替段落文本的颜色。 a和b值必须是整数(正数,负数或零)。元素的第一个子元素的索引是1.
我想你想使用:table:nth-of-type(n)
选择器。
其次,您只选择带有选择器的元素,但是您希望获得可见内容232323,它只是您选择的元素的一个内部节点。所以缺少的是你获得内容的部分。有几种方法可以做到这一点。我再次建议您阅读文档。特别是cookbook对初学者非常有帮助。我想你可以使用这样的东西:
String content = element.text();
第三,使用CSS选择器,您确实需要遍历DOM的每个层次结构级别。由于表格始终包含tbody
和tr
以及td
元素,因此您可以执行以下操作:
String content = document.select("table:nth-of-type(2) tr:nth-of-type(2) td:last-of-type").text();
注意,我手边没有java编译器。请小心使用我的代码。