python学习笔记 BeautifulSoup趴数据

最近再一家互联网公司实习,原来是使用java,头要求从网页上抓取数据,做成可视化页面。要求使用python脚本

参考的资料 :python简明教程  百度一下,就可以搜到电子版本;是以2.7为基础的,非常适合初学者,不厚,却没有那么多废话

公司询问之后,发现,虽然python已经升级到3.3以上,可是大部分的公司都还在使用python2.7,是出于稳定性的考虑。除非出现新的无法解决的bug,才会小心的升级到最近的可以解决问题的稳定版本。

为了从网页中趴取数据:使用了python+ 一种html网页解析神器具:beautifulsoup

我使用的mac,mac自己集成了py2.7,可以安装py3.3, 建议不要吧默认设为py 3.3,会导致无法安装easy_install,pip

可以使用pip beautifulsoup 来安装sudo pip install beautifulsoup, 需要用到系统权限,所以要加sudo

关于beautifulsoup的使用可以参考以下两个连接:


官方中文教程:点击打开链接

还有一篇博客:http://www.cnblogs.com/twinsclover/archive/2012/04/26/2471704.html

推荐使用的是 PyCharm,社区免费版本已经足够使用。公司里大部分用的都是这个,还有一部分坚守再sublime text上

mport urllib
from BeautifulSoup import BeautifulSoup

url = "连接";
allData=""

content = urllib.urlopen(url).read()
soup = BeautifulSoup(content)

tags1 = soup.findAll('tr', {"class": "even right"})
tags2 = soup.findAll('tr', {"class": "odd right"})


比如上面的就是 利用写的一些代码,是要取出网页中class 为even right 的所有tr

和所有class 为odd right的所有tr

取出之后就可以打印出他的内容,例如:

for tag in tags2:
    t= tag.contents[1]
    s = t.text #获取tag中得内容
    print "\t" + s,
    allData += "\t" + s

    t= tag.contents[2]
    s = t.text
    print "\t" + s,
    allData += "\t" + s,
    
    t= tag.contents[3]
    s = t.text
    print "\t" + s, 
    allData += "\t" + s,
open("/Users/charleszhu/alldata.csv", "w").write(allData)

这里值得注意的是 python中使用输出如何不换行的一个小技巧就是:print之后,加一个逗号,就可以不换行输入,若要换行,可以输出“\n”,或者直接print不加逗号。
同时python中得for循环,是按照缩进,来判断层次的,需要格外注意~再PyCharm中,写中文注释运行时候可能会报错,在文件头上加上 #coding:utf-8(带上#)就可以确保运行不报错

同时 你可以将你的内容全部写入文件中 就可以再对应位置写入相应文档。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值