Python学习笔记-1

有人说简书首页上的鸡汤文很多,虽然我看到不少干货和很好的作者,为了用数据来说明,就想到用Python把数据抓取下来做一个分析,看看首页的热门上有多少鸡汤文,有多少关于IT编程的文章,简书上评论和写作的群体有什么特点。

完成:把简书首页热门文章标题,链接,阅读量、评论、打赏爬取下来,保存到一个Excel文件中。每天定时抓取数据,Excel进行分类汇总分析,再对一些文章翻阅。
再对热门文章中的评论者信息抓取分析,对文章点“喜欢”的用户抓取分析(从邮件中抓取用户,反向获得信息)

之前Python看过半天时间,这次学习,不系统,直接拿现成的代码理解,一边测试一边coding 完成一个小功能。从网上的一小段代码(抓取图片Demo)开始学习,一步步增加功能:

  • 获取网页代码(urllib2)
  • 解析网页(正则表达式,BeautifulSoup)
    • 从最简单开始,测试拿到网页中所有的图片,保存到本地(抓取网站图片)
    • 把页面中所有文章的标题拿到,打印出来
    • 拿到一组数据(标题,链接,阅读量、评论、打赏),按格式打印
  • 把抓取的数据写入Excel(xlwt)
    • 安装第三方库 xlwt
    • 测试写入数据到excel(中文的写入)
    • 封装方法,把抓取的数据写入excel
    • 开启定时任务

以上功能完成后,再回过头把我忽略的基础知识快速过一遍。


遇到的问题:

  • 正则表达式,urllib2直接读取到网页后,需要用正则表达式匹配取出文章标题等信息。主要在匹配文章标题、阅读数量,换行、空格的匹配上试了多次,在取出关联数据上花了一些时间。

  • 开始采取的方法正则表达式直接匹配网页的方式,对网页代码进行分析,找出标题,链接,阅读量、评论的代码的特征。后来采用BeautifulSoup

  • Excel库引入的问题。在命令行安装xlwt,控制台上可以使用,但是在PyCharm不能使用xlwt,显示没有导入库。Mac中PyCharm添加第三库的地方一直没有找到,最后只好用搜索的方式,搜Project Interpreter找到。 (但是在安装BeautifulSoup后,PyCharm中就直接可以用了)

应该是在Preferences下,PyCharm添加第三方库只对工程?
  • BeautifulSoup在命令行pip安装失败,直接下载源码进行安装。

  • Excel追加数据和写入数据不同,xlwt操作每次会重写excel文件,追加写入数据用xlutils,在PyCharm中xlutils也没有什么代码提示和补全。

rb = open_workbook(filename) #应该是以只读的方式拿到文件 
wb = copy(rb)                #拷贝成一个可写的工作簿?
sheet = wb.get_sheet(0)
sheet.write(0, 0, value.decode('utf-8'))  #写入中文
wb.save(filename)  

从这段代码开始

import re  
import urllib  
  
def getHtml(url):  
    page = urllib.urlopen(url)  
    html = page.read()  
    return html  
  
def getImg(html):  
    reg = r'src="(.+?\.jpg)" pic_ext'  
    imgre = re.compile(reg)  
    imglist = imgre.findall(html)  
    x = 0  
    for imgurl in imglist:  
        urllib.urlretrieve(imgurl,'%s.jpg' % x)  
        x = x + 1          
     
html = getHtml("http://tieba.baidu.com/p/2460150866")  
getImg(html)  

就是对以上代码的拆解,按上述步骤添加我设想的功能,再进行封装。

体会:

  1. Python上手比较快,学习成本低,大部分内容我参照Java来理解,函数式编程方便快捷,可以说是write less, do more
  2. 一些库的用法我还没有很好理解,但能经过调试快速做出东西来,还需要深入了解。如xlwt, 特别是xlutils可能没有找到类的特性,不像urllib2在IDE中有提示就可以直接知道怎么用。
  3. 下一步多看一些github上的代码,搞一些小工具和好玩的东西。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容