我目前正在爬一个审查网站与美丽的汤
复习页面包含不同学生的复习, 每个学生都会从几个方面来评价学校
因此,页面的结构通常如下所示:
学生A-标题A:
学生B-标题B:
每次代码评审
<!-- mod-reviewTop -->
<div class="mod-reviewTop">
<!-- mod-reviewTop-inner -->
<div class="mod-reviewTop-inner">
<dl>
<dd>
<div class="mod-reviewTitle" itemprop="summary">
title 1 : It was ok.
</div>
</dd>
</dl>
<!-- /mod-reviewItem -->
</div>
<!-- /mod-reviewTop -->
<!-- mod-reviewBottom -->
<div class="mod-reviewBottom">
<!-- mod-reviewList-list -->
<div class="mod-reviewList-list js-review-detail" itemprop="description">
<!-- js-mod-reviewList-list -->
<div class="js-mod-reviewList-list">
<ul>
<li>
<div class="mod-reviewTitle3">
Total Evaluation
</div>
<div class="mod-reviewList-txt">
We can freely choose the course we want, and thus a lot of different knowledge can be learned.
</div>
</li>
<li>
<div class="mod-reviewTitle3">
Course
</div>
<div class="mod-reviewList-txt">
the courses are good.
</div>
</li>
<li>
<div class="mod-reviewTitle3">
Lab
</div>
<div class="mod-reviewList-txt">
we don’t join lab in the first 2 year.
</div>
</li>
</ul>
</div>
<!-- /js-mod-reviewList-list -->
</div>
<!-- /mod-reviewList-list -->
</div>
<!-- /mod-reviewBottom -->
您可以看到,尽管方面的标题不同,但它们都以'div^{cl1}$开头,注释都以'div^{cl2}$开头。 我的问题是如何编写好代码将这些信息存储到数据集中:
|标题| aspect1注释| aspect2注释
很好很好
我已经尝试了下面的代码,但是每个块中的方面注释都不起作用
datatest = soup.find_all("div", {"class":"mod-reviewTop"})
datatest1 = soup.find_all("div", {"class":"mod-reviewBottom"})
for item in datatest:
a = item.select('.mod-reviewTitle')
c = item.select('.mod-reviewTitle3')
d = item.select('.mod-reviewList-txt')
g = item.select('.js-mod-reviewList-list')
f= item.select('.mod-reviewItem')
for i in range(len(a)):
f1= f[i].text[7]
f2= f[i].text[17]
f3= f[i].text[26]
f4= f[i].text[37]
f5= f[i].text[46]
f6= f[i].text[55]
f7= f[i].text[63]
print a[i].text
print f1, f2, f3, f4, f5, f6, f7
for item in datatest1:
for k in range(len(g)):
print g[k].text
print e[k].text
print k
我认为这是一个编程问题。。 我试过,但效果不好
如果您能给我一些参考或如何结构将工作逻辑,请给我一个意见。。谢谢
提示:
您应该将
aspects
和comments
附加到相应的titles
,这意味着您可以使用适当的数据结构将它们存储在一起。像这样(只是一种可能的方式)[ (title1,[ (aspect1, comment1), (aspect2, comment2), ... ]), (title2,[ (aspect1, comment1), (aspect2, comment2), ... ]), ... ]
因此,在检索所需数据时,请使用嵌套的
for
循环组织操作。i、 例如,一旦你找到一个方面,试着得到相应的注释并将它们存储在一起。逃避寻找所有方面,然后所有的评论代码
这是一个演示
相关问题 更多 >
编程相关推荐