最近再一家互联网公司实习,原来是使用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 为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(带上#)就可以确保运行不报错
同时 你可以将你的内容全部写入文件中 就可以再对应位置写入相应文档。