网页数据抓取软件(Python代码段落并提取相应值__box)

优采云 发布时间: 2021-10-19 17:02

  网页数据抓取软件(Python代码段落并提取相应值__box)

  代码段并提取对应值

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

  拿到label后,我们可以使用name_box的text属性来获取对应的值

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

  印刷名称

  使用类似的方法,我们可以得到股票指数价格数据。

  # 获取股指价格数据

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

  价格 = price_box.text

  印刷价格

  

  当您运行程序时,您应该能够看到程序输出标准普尔 500 指数的当前价格。

  以 Excel CSV 格式导出数据

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

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

  导入 csv

  从日期时间导入日期时间

  在代码底部,添加将数据写入 CSV 文件的代码。

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

  使用 open('index.csv','a') 作为 csv_file:

  writer = csv.writer(csv_file)

  writer.writerow([名称, 价格, datetime.now()])

  

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

  所以如果你每天运行这个程序,你就可以轻松获得标准普尔指数价格,而不必像以前那样在网站上搜索。

  更进一步(高级用法)

  多个股票指数

  抓取一个股指信息对你来说还不够,对吧?我们可以尝试同时提取多个股指信息。首先,我们需要修改 quote_page 以将其定义为 URL 数组。

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

  然后我们把代码的数据提取部分改成了for循环。这个循环可以一个一个地处理URL,并将变量data中的所有数据以元组类型存储。

  # for 循环

  数据 = []

  对于quote_page中的pg:

  # 检索网站并返回HTML代码,并将其存储在变量'page'中

  页 = urllib2.urlopen(pg)

  # 使用 beautifulSoup 解析 HTML 代码并将其存储在变量 `soup` 中

  汤 = BeautifulSoup(page,'html.parser')

  # 获取“名称”类别

  代码段并提取对应值

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

  name = name_box.text.strip() # strip() 用于去除开头和结尾

  # 获取股指价格数据

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

  价格 = price_box.text

  # 使用元组类型存储数据

  data.append((名称,价格))

  并且,修改保存部分,逐行保存数据

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

  使用 open('index.csv','a') 作为 csv_file:

  writer = csv.writer(csv_file)

  # for 循环

  对于名称,数据中的价格:

  writer.writerow([名称, 价格, datetime.now()])

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

  先进的爬虫技术

  BeautifulSoup 库使用方便,可以很好的做少量的网站爬取。但是如果你对大量的爬取信息感兴趣,可以考虑其他方法:

  1. Scrapy,一个强大的 Python 数据捕获框架。

  2. 您可以尝试将一些公共应用程序编程接口 (API) 集成到您的代码中。这种获取数据的方法远比网络爬行高效。例如,您可以尝试 Facebook Graph API。该 API 可以帮助您获取 Facebook 网站 上未显示的隐藏信息。

  3. 如果数据量太大,可以考虑使用类似于MySQL的数据库后端来存储数据。

  采取“不要重复”的方法

  

  DRY 是英语中“不要重复你做过的事情”的缩写。您可以尝试像链接中的人一样自动化您的日常工作。同时,你也可以考虑其他有趣的项目,比如掌握你的 Facebook 好友的在线时间(当然他们同意),或者在论坛中获取讲座主题列表来尝试自然语言处理(这是当前人工智能的热门话题)!

  原文链接

  本文观点仅代表作者本人。36氪是信息发布平台,36氪仅提供信息存储空间服务。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线