利用python爬取复仇者联盟3无限战争豆瓣短评

漫威粉丝,恰恰最近在学习python爬虫,于是就照着参考书目做了一个可以爬取豆瓣短评的爬虫,结果输出到txt文档,之后便可以进行词云分析,搞一些好玩的东西啦,话不多说,上代码。

import requests
from bs4 import BeautifulSoup              

首先是两个需要用到的包,一个requests用于请求网页,一个beautiful soup用于解析网页,获取我们想要的内容。

 
  
def get_comments(url_comments):                                  #定义评论爬取函数

    headers ={
    ("User-Agent":'Mozilla/5.0(Windows
;U;Windows NT 6.1;Win64;x64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'),
     'Host':'movie.douban.com'
    }                                             #定义爬虫请求头
    comments_list=[]                                 #定义存储评论的列表
    for i in range(0,10):
        link=url_comments+str(i*20)   #换页
        r=requests.get(link,headers= headers,timeout=20)
        print (str(1),"页响应状态码:",r.status_code)
        soup=BeautifulSoup(r.text,"lxml")                   #利用beautifulsoup进行页面解析
        div_list =soup.find_all('div',class_='comment')       #获取类型为comment标签为div后的文本
        for  each in div_list:
            comment=each.p.text.strip()
            comments_list.append(comment)
    return comments_list

然后就是定义了一个获取评论的函数,参数为需要获取短评的网页的链接(入门级代码,后续会完善到输入电影名称)

接下来就是调用了。

host_l=input('please paste the urls and ended at \'start=\'')      #输入短评链接
comments=get_comments(host_l)
with open('avengers_comments.txt',"a+",encoding='utf-8')  as f:              #输出到txt
    # 对txt及进行重新编码
    f.write(str(comments))
    f.close()
print("文件已写入")

注释都在文中,截至至2018年5月23日,这个代码都是没有问题的。

供和我一样初出茅庐的人学习参考。

利用python爬取复仇者联盟3无限战争豆瓣短评_第1张图片

以上便是复联3豆瓣短评爬下来的部分内容了。

完整代码如下:

import requests
from bs4 import BeautifulSoup
def get_comments(url_comments):                                  #定义评论爬取函数

    headers ={
    "User-Agent":'Mozilla/5.0(Windows;U;Windows NT 6.1;Win64;x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36',
     'Host':'movie.douban.com'
    }                                             #定义爬虫请求头
    comments_list=[]                                 #定义存储评论的列表
    for i in range(0,10):
        link=url_comments+str(i*20)   #换页
        r=requests.get(link,headers= headers,timeout=20)
        print (str(1),"页响应状态码:",r.status_code)
        soup=BeautifulSoup(r.text,"lxml")                   #利用beautifulsoup进行页面解析
        div_list =soup.find_all('div',class_='comment')       #获取类型为comment标签为div后的文本
        for  each in div_list:
            comment=each.p.text.strip()
            comments_list.append(comment)
    return comments_list


host_l=input('please paste the urls and ended at \'start=\'')      #输入短评链接
comments=get_comments(host_l)
with open('avengers_comments.txt',"a+",encoding='utf-8')  as f:              #输出到txt
    # txt及进行重新编码
    f.write(str(comments))
    f.close()
print("文件已写入")

感谢参考,欢迎交流学习。


你可能感兴趣的:(python,爬虫,爬虫,python,豆瓣,短评)