爬取《三体》,相关网页内容如下:
https://book.douban.com/subject/2567698/comments/hot?p=1
开始之前我们先明确一下爬虫的基本步骤:
- 抓取
- urllib内建模块 urllib.request
- requests第三方库(中小型)
- scrapy框架(大型)
- 解析
- BeautifulSoup库
- re模块
这次我们就用到了requests库,BeautifulSoup库以及re模块
由于要读取50条短评,而每一页有20条,用一个while循环解决,第一页是p=1,第二页是p=2,以此类推。
观察评分和评论部分的网页源代码如下:
<span class="comment-info">
<a href="https://www.douban.com/people/petercat/">Peter Cat</a>
<span class="user-stars allstar40 rating" title="推荐"></span>
<span>2014-08-05</span>
</span>
</h3>
<p class="comment-content">
<span class="short">大刘不是文笔平庸,是根本没有文笔和人物。三体之所以仍旧很好看,的确仰赖其在物理、历史、数学、哲学方面极其渊博的知识,和将这些知识串联起来的想象力。不过还是会觉得遗憾,没有心理建构小说,那种震撼永远是表层的。</span>
可以发现"user-stars allstar40 rating"里的40是评分,而<span class="short">中的内容是评论,评论很容易用BeautifulSoup解析得到,而评分用re模块进行解析。需要注意的是第三页全部读到列表里的话就会总共有60条,所以用count_del记录一下,最后再删掉多