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的使用可以参考以下两个连接:

 

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

 

推荐使用的是 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 	 + s,
    allData += 	 + s

    t= tag.contents[2]
    s = t.text
    print 	 + s,
    allData += 	 + s,
    
    t= tag.contents[3]
    s = t.text
    print 	 + s, 
allData += + s,

 

open(/Users/charleszhu/alldata.csv, w).write(allData)

 


这里值得注意的是 python中使用输出如何不换行的一个小技巧就是:print之后,加一个逗号,就可以不换行输入,若要换行,可以输出“ ”,或者直接print不加逗号。

同事python中得for循环,是按照缩进,来判断层次的,需要格外注意~再PyCharm中,写中文注释运行时候可能会报错,在文件头上加上 #coding:utf-8(带上#)就可以确保运行不报错同事 你可以将你的内容全部写入文件中

就可以再对应位置写入相应文档。

评论关闭