鱼C论坛

 找回密码
 立即注册
查看: 2153|回复: 0

[技术交流] 糗事百科数据下载到excel

[复制链接]
发表于 2016-7-24 13:06:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ~风介~ 于 2016-7-27 23:29 编辑

写入excel数据前要保证:name、agre_num和comment_num的数目一致
欢迎大家指正


  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Sun Jul 24 12:36:25 2016

  4. @author: mozzielx
  5. """

  6. import re
  7. from urllib.error import URLError
  8. from urllib.request import  Request,urlopen
  9. from openpyxl import Workbook
  10. from openpyxl.compat import range

  11. def get_content(url):
  12.     req=Request(url)
  13.     req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36')
  14.     temp=urlopen(req)
  15.     html=temp.read().decode('utf-8')
  16.     return html

  17. def get_target(tar):
  18.     name=re.findall(r'<a href="/users/[^"]+/" target="_blank" title="(.+)">',tar)
  19.     agre_num=re.findall(r'<span class="stats-vote"><i class="number">(.+)</i> 好笑</span>',tar)
  20.     comment_num=re.findall(r'<a href="/article/[^"]+" data-share="/article/[^"]+" id="[^"]+" class="qiushi_comments" target="_blank">\n<i class="number">(.+)</i> 评论\n</a>',tar)
  21. #    print(len(name),len(agre_num),len(comment_num))

  22.     for row in range(2,len(name)+2):#指定行数
  23.             for col in range(1,2):#指定列数
  24.                 _ = ws.cell(column=col, row=row, value="%s" % name[row-2])
  25.     for row in range(2,len(agre_num)+2):
  26.             for col in range(2,3):
  27.                 _ = ws.cell(column=col, row=row, value="%s" % agre_num[row-2])  
  28.     for row in range(2,len(comment_num)+2):
  29.             for col in range(3,4):
  30.                 _ = ws.cell(column=col, row=row, value="%s" % comment_num[row-2])

  31. if __name__ == "__main__":
  32.     url='http://www.qiushibaike.com/8hr/page/4/?s=4897779'
  33.     wb=Workbook()#建立excel文件
  34.     ws=wb.active
  35.     ws['A1']='作者'
  36.     ws['B1']='点赞数'
  37.     ws['C1']='评论数'
  38.     get_target(get_content(url))
  39.     wb.save("糗事百科段子数据.xlsx")
复制代码





评分

参与人数 1荣誉 +1 鱼币 +2 收起 理由
SixPy + 1 + 2 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 11:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表