Python——爬取电影影评评论


爬取目标网页,网址:https://movie.douban.com/subject/26683723/comments?status=P

在检查窗口移动鼠标,放在不同的代码段上,网页上就会有不同的区域被选中,经过不断查找,存放影评的文字都存放在<p class=""> </p>标签当中

#需要调用的requests 库和 BeautifulSoup库中的bs4工具
import requests
from bs4 import BeautifulSoup
num=0#定义条数的初始值
#定义一个变量url,为需要爬取数据我网页网址
url = 'https://movie.douban.com/subject/26683723/comments?status=P'
#获取这个网页的源代码,存放在req中
req = requests.get(url,{'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'})
#生成一个Beautifulsoup对象
soup = BeautifulSoup(req.text,'lxml')
xml = soup.find_all('p',class_='')
 
for i in range(len(xml)):
    msg = xml[i].string
    if not msg is None:
        num += 1
        print('', num, '', msg)

运行结果

 找到每页之间的联系。

对比发现:它们的区别在于start=后边的数字不同,都是20的整倍数(原因是每页都只有20条影评)

所以只要实现start=后边的字符串的改变,即可实现对不同页面进行爬取。

#需要调用的requests 库和 BeautifulSoup库中的bs4工具
import requests
from bs4 import BeautifulSoup
num=0#定义条数的初始值
#通过循环实现对不同页码的网页的数据爬取
for page in range(10):
    value = page * 20
    #定义一个变量url
    url = 'https://movie.douban.com/subject/26683723/comments?start=%s&limit=20&sort=new_score&status=P&percent_type=' %str(value)#str转型
    #获取这个网页的源代码
    req = requests.get(url,{'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'})
    #生成一个Beautifulsoup对象
    soup = BeautifulSoup(req.text,'lxml')
    xml = soup.find_all('p',class_='')
 
    for i in range(len(xml)):
        msg = xml[i].string
        if not msg is None:
            num += 1
            print('', num, '', msg)

运行结果

 

 主要有以下步骤:先找到目标网页,分析网页源码,确定所需数据的位置,编写Python代码,调用Python强大的工具就可以实现了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM