python项目开发案例集锦 豆瓣-Python第三个项目:爬取豆瓣《哪吒之魔童降世》 短评...

前面爬完网站信息图片之后,今天的又有了个小目标,最近的电影哪吒很火,去豆瓣上看了一下 影评,决定了今天主要是实现Python第三个项目:爬取豆瓣《哪吒之魔童降世》 短评,然后下载在excel表格里面查看。

在网上找了一个开源的小例子,但是豆瓣的网页结构以及有所调整,爬到的时间和评论都是空的,对代码进行了一些修改,可以爬取豆瓣最新的网页里面某部电影的短评,如果需要其他电影短评,直接改一下参数链接即可。

#_*_coding:utf-8_*_

import requests

import re

import csv

import time

from lxml import etree

def get_one_page(url):

try:

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36'}

response = requests.get(url,headers=headers,timeout=10)

if response.status_code == 200:

# print(response.text)

return response

return None

except EOFError as e:

print(e)

return None

def parse_one_page(res,info):

info = []

res = etree.HTML(res.content.decode())

nodes_list = res.xpath('//div[@class="comment-item"]')

for node in nodes_list:

comic = {}

comic['User'] = node.xpath('.//span[@class="comment-info"]/a/text()')[0].strip()

comic['Time'] = node.xpath('.//span[@class="comment-info"]/span[3]/text()')[0].strip()

comic['Comment'] = node.xpath('.//span[@class="short"]/text()')[0].strip()

print(comic)

info.append(comic)

return info

def write_to_file(info):

with open('《哪吒之魔童降世》短评.csv','a',newline='') as f:

fieldnames = ['User','Time','Comment']

writer = csv.DictWriter(f,fieldnames=fieldnames)

writer.writeheader()

try:

writer.writerows(info)

except:

pass

def main(start):

info = {}

url = 'https://movie.douban.com/subject/26794435/comments?start=' + str(start) + '&limit=20&sort=new_score&status=P&percent_type='

html = get_one_page(url)

data = parse_one_page(html,info)

write_to_file(data)

if __name__ == '__main__':

for i in range(10):

main(i*20)

print('第{}本页采集完毕。'.format(str(i))) # 采集完一页后的标识

time.sleep(1) # 采集完一页休息一秒

运行之后

4dcd6f2c7485?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

自动生成了一个excel的表格

4dcd6f2c7485?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

下载表格,打开查看,按照顺序把网页上的短评都抓取下来啦。

4dcd6f2c7485?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

原文作者:祈澈姑娘 技术博客:https://www.jianshu.com/u/05f416aefbe1

90后前端妹子,爱编程,爱运营,文艺与代码齐飞,魅力与智慧共存的程序媛一枚,欢迎关注【编程微刊】公众号,回复【领取资源】,500G编程学习资源干货免费送。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值