Python爬取0复仇者联盟3:无限战争0评论并写入Excel


由漫威电影公司出品的科幻电影<复仇者联盟3:无限战争>,于2018年5月11日在中国大陆上映,得到了观众的广泛好评,今天我们一起来看看网友们看完后的心得.

下面是爬取到的部分数据:

    

下面是完整代码:

    环境:Python3.6

[python]  view plain  copy
  1. import requests  
  2. import re  
  3. import time  
  4. import os  
  5. import xlsxwriter  
  6.   
  7.   
  8. # 用于记录写入数据的条数  
  9. data_cursor = 1  
  10.   
  11.   
  12. # 创建工作文件  
  13. def write_data():  
  14.     # 删除文件  
  15.     if os.path.exists('./复仇者联盟3评论信息.xlsx'):  
  16.         os.remove('复仇者联盟3评论信息.xlsx')  
  17.   
  18.     # 创建工作文件  
  19.     workbooke = xlsxwriter.Workbook('复仇者联盟3评论信息.xlsx')  
  20.     # 创建工作表  
  21.     worksheet = workbooke.add_worksheet()  
  22.     # 写标题  
  23.     worksheet.write(00'是否有用')  
  24.     worksheet.write(01'是否看过')  
  25.     worksheet.write(02'作者')  
  26.     worksheet.write(03'时间')  
  27.     worksheet.write(04'内容')  
  28.   
  29.     return workbooke, worksheet  
  30.   
  31.   
  32. def main():  
  33.     global data_cursor  
  34.     try:  
  35.         page_num = int(input("请输入页数:"))  
  36.         # 创建excel文件  
  37.         workbooke, worksheet = write_data()  
  38.         for page in range(page_num):  
  39.             # 评论url地址  
  40.             # url = "https://movie.douban.com/subject/4920389/comments?start=" + str(  
  41.             #     page * 20) + "&limit=20&sort=new_score&status=P&percent_type="  
  42.   
  43.             url = "https://movie.douban.com/subject/24773958/comments?start=" + str(  
  44.                 page * 20) + "&limit=20&sort=new_score&status=P&percent_type="  
  45.             # 获取网页源代码  
  46.             html = requests.get(url)  
  47.             html.encoding = 'utf-8'  
  48.             html = html.text  
  49.             # 正则匹配得到需要的数据  
  50.             result = re.findall(  
  51.                 r'<a href="javascript:;" class="j a_show_login" οnclick="">(.*?)</a>'  
  52.                 r'.*?<a href="https://www.douban.com/.*?" class="">(.*?)</a>'  
  53.                 r'.*?<span>(.*?)</span>'  
  54.                 r'.*?<span class="comment-time " title="(.*?)">.*?</span>'  
  55.                 r'.*?<p class=""> (.*?)</p>',  
  56.                 html, re.S)  
  57.             # print(result, len(result))  
  58.   
  59.             for index, item in enumerate(result):  
  60.                 #       用用      作者      看过      时间      评论内容  
  61.                 # print(item[0], item[1], item[2], item[3], item[4].strip(''))  
  62.                 # 写入数据  
  63.                 worksheet.write(data_cursor, 0, item[0])  
  64.                 worksheet.write(data_cursor, 1, item[2])  
  65.                 worksheet.write(data_cursor, 2, item[1])  
  66.                 worksheet.write(data_cursor, 3, item[3])  
  67.                 worksheet.write(data_cursor, 4, item[4])  
  68.                 data_cursor += 1  
  69.             print('第{}页完成...'.format(page + 1))  
  70.             # 每一页之间间隔1秒  
  71.             time.sleep(1)  
  72.     except Exception as e:  
  73.         print(e)  
  74.     finally:  
  75.         # 关闭文件对象  
  76.         workbooke.close()  
  77.   
  78.   
  79. if __name__ == '__main__':  
  80.     main()  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值