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(带上#)就可以确保运行不报错同事 你可以将你的内容全部写入文件中
就可以再对应位置写入相应文档。
上一篇: Python-03-测试
下一篇: 了解正向代理与反向代理的区别