Python瓦匠系列 —— 爬虫小实验

项目一 从豆瓣上面找出一本你感兴趣的书,抓取它的某一页短评,并计算其总分。

目标网页:https://book.douban.com/subject/27188298/comments/

第一步:使用requests库和BeautifulSoup对目标网页进行解析。

import requests
from bs4 import BeautifulSoup
import re

sum = 0
i = 1
#使用text属性,提取文本内容。
r = requests.get('https://book.douban.com/subject/27188298/comments/').text
html = BeautifulSoup(r,'lxml')
#find_all方法找到p标签下的所有 comment-content。
bsObj = html.find_all('p','comment-content')    
for item in bsObj:
     print(str(i).ljust(3) + item.string + '\n')    #给评论加上序号并进行分行。
     i += 1    #python并支持i++这种整数自增语法。

运行的结果如下:

1  李维嘛,清新治愈,一年一本,创造力真是惊人

2  很暖心的一部小说。本来以为苏珊是女主,读完之后才知道玛丽才是真正的女主。我喜欢这个懂得爱的女主,她的放手是一种欲擒故纵,健康的依恋关系,真是美好的爱情 和婚姻生活啊。
《你在哪里》很容易读,相当的温心。

3  故事的前半段真的看得非常揪心,等一个人的感觉太苦,但后来的情节有了反转,挺出乎意料的。

4  ...

18 画面感很强,拍成电视剧应该很好看。不怪时间,是我们误会了对方在心里的位置。苏菲的价值寄托在拯救别人身上,当别人对他有一丝一毫的动摇,他就崩溃了,爱自己才能够爱别人。菲利普与苏菲的世界都是各自不想放手自己的生活,又不想辜负梦想中爱情的样子。不要考验爱情,更不要失去自我。看完感触很多,希望你也有不同的收获。

19 这世上总有一个地方,让无处安放的灵魂找到栖息之所

20 喜欢马克李维的书,这本也很暖心!

第二步:计算总分

我们需要使用re正则表达式模块。

我们在使用浏览器审查网页源码时可以看到这样一行:

   <span class="user-stars allstar40 rating" title="推荐"> 其中40 就是我们想要的分数。

  要想匹配这种模式"字符串()字符串",常用的方法:(.*?)

  例如本例:user-stars allstar(.*?) rating"

  当然我们还需要更加深入的去学习正则表达式。

pattern_s = re.compile('<span class="user-stars allstar(.*?) rating"')
p = re.findall(pattern_s,r)
for star in p:
     sum += int(star)
print(sum)

最后整合一下代码,看一下运行结果:

import requests
from bs4 import BeautifulSoup
import re

sum = 0
i = 1
#使用text属性,提取文本内容。
r = requests.get('https://book.douban.com/subject/27188298/comments/').text
html = BeautifulSoup(r,'lxml')
#find_all方法找到p标签下的所有 comment-content。
bsObj = html.find_all('p','comment-content')    
for item in bsObj:
     print(str(i).ljust(3) + item.string + '\n')    #给评论加上序号并进行分行。
     i += 1    #python并支持i++这种整数自增语法。
#抓取评论分数并计算总和。
pattern_s = re.compile('<span class="user-stars allstar(.*?) rating"')
p = re.findall(pattern_s,r)
for star in p:
     sum += int(star)
print(sum)

 

 结果:

1  李维嘛,清新治愈,一年一本,创造力真是惊人

2  很暖心的一部小说。本来以为苏珊是女主,读完之后才知道玛丽才是真正的女主。我喜欢这个懂得爱的女主,她的放手是一种欲擒故纵,健康的依恋关系,真是美好的爱情 和婚姻生活啊。
《你在哪里》很容易读,相当的温心。

3  故事的前半段真的看得非常揪心,等一个人的感觉太苦,但后来的情节有了反转,挺出乎意料的。
4  ...
18 画面感很强,拍成电视剧应该很好看。不怪时间,是我们误会了对方在心里的位置。苏菲的价值寄托在拯救别人身上,当别人对他有一丝一毫的动摇,他就崩溃了,爱自己才能够爱别人。菲利普与苏菲的世界都是各自不想放手自己的生活,又不想辜负梦想中爱情的样子。不要考验爱情,更不要失去自我。看完感触很多,希望你也有不同的收获。

19 这世上总有一个地方,让无处安放的灵魂找到栖息之所

20 喜欢马克李维的书,这本也很暖心!

900

 

posted @ 2018-02-01 10:52  未来分析师  阅读(402)  评论(0编辑  收藏  举报