本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

wzatv:范例+代码带你上手Python网页抓取BeautifulSoup库(2)

时间:2017-08-04 02:50来源:本港台直播 作者:j2开奖直播 点击:
别忘了我们的数据存储在特有的层次中。BeautifulSoup库中的find()函数可以帮助我们进入不同的层次提取内容。我们需要的HTML类“名称”在整个网页中是独一

别忘了我们的数据存储在特有的层次中。BeautifulSoup库中的find()函数可以帮助我们进入不同的层次提取内容。我们需要的HTML类“名称”在整个网页中是独一无二的,因此我们可以简单的查找<div>

# 获取“名称”类的<div>代码段落并提取相应值

name_box = soup.find(‘h1’, attrs={‘class’: ‘name’})

在我们得到标签之后,我们可以用name_box的text属性获取相应值

name = name_box.text.strip() # strip() 函数用于去除前后空格

print name

采用相似的方法,直播,我们可以得到股指价格数据。

# 获取股指价格数据

price_box = soup.find(‘div’, attrs={‘class’:’price’})

price = price_box.text

print price

当你运行程序时,应该可以看到程序输出当前的标普500指数的价格。

导出Excel CSV格式数据

我们已经学会如何获取数据,现在来学习如何存储数据了。Excel逗号隔开的数据格式(CSV)不失为一个好选择。这样我们就可以在Excel中打开数据文件进行查看和进一步处理。

在此之前,我们需要导入Python的csv模块和datetime模块。Datetime模块用于获取数据记录时间。请将下面几行代码插入您的导入代码部分。

import csv

from datetime import datetime

在您代码的最下方,加上把数据写入CSV文件的代码。

# 以“添加”模式打开一个csv文件, 以保证文件原有信息不被覆盖

with open(‘index.csv’, ‘a’) as csv_file:

writer = csv.writer(csv_file)

writer.writerow([name, price, datetime.now()])

现在如果运行程序,您应该可以导出一个index.csv文件。您可以在Excel中打开文件,看到里面有如图所示的一行数据。

所以如果您每天都运行这个程序,您就可以很简单的获取标准普尔指数价格,不需要像之前一样在网站上翻找。

更进一步(高级用法)

多个股指

抓取一个股指信息对您来说不够,对吗?我们可以试试同时提取多个股指信息。首先,我们需要修改quote_page,把它定义为网址的数组。

quote_page = [‘:IND', ‘:IND']

然后我们把数据提取部分代码改成一个for循环。这个循环可以一一处理网址,并以元组(tuple)类型把所有数据存入变量data.

# for 循环

data = []

for pg in quote_page:

# 检索网站并返回HTML代码,存入变量‘page’

page = urllib2.urlopen(pg)

# 用 beautifulSoup 解析HTML代码并存入变量 `soup`

soup = BeautifulSoup(page, ‘html.parser’)

# 获取“名称”类的<div>代码段落并提取相应值

name_box = soup.find(‘h1’, attrs={‘class’: ‘name’})

name = name_box.text.strip() # strip() is used to remove starting and trailing

# 获取股指价格数据

price_box = soup.find(‘div’, attrs={‘class’:’price’})

price = price_box.text

# 用元组类型存储数据

data.append((name, price))

并且,修改保存部分以便一行行保存数据

# 以“添加”模式打开一个csv文件, 以保证文件原有信息不被覆盖

with open(‘index.csv’, ‘a’) as csv_file:

writer = csv.writer(csv_file)

# for 循环

for name, price in data:

writer.writerow([name, price, datetime.now()])

重新运行程序,您应该可以同时提取两个股指价格信息了!

高级抓取技术

BeautifulSoup 库使用简单,能很好的完成小量的网站抓取。但是如果您对大量的抓取信息感兴趣,您可以考虑其他方法:

1. 强大的Python数据抓取框架Scrapy。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容