python span镶嵌匹配_使用beautifulsoup解析嵌套span标记

news/2024/7/5 21:29:18

所以这是工作的方式,比我以前的工作方式要好,但仍然存在一些问题。我发布了完整的脚本,你可以看到我在做什么。我将花费一些时间和精力来研究这些问题,但这将帮助我更好地学习python和beauthulsoup。在"""

This program imports a list of stock ticker symbols from "ca_stocks.txt"

It then goes to the Globe website and gets current company stock data

It then writes this data to a file to a CSV file in the form

index, ticker, date&time, dimension, measure

"""

import urllib2

import csv, os

import datetime

import re #regular expressions library

import bs4

#from bs4 import BeautifulStoneSoup as bss

#from time import gmtime, strftime

#from lxml import etree

import pyquery

#import dataextract as tde

os.chdir('D:\\02 - \\003 INVESTMENTS\\Yahoo Finance Data')

symbolfile = open('ca_stocks2.txt')

symbolslist = symbolfile.read().split('\n')

def pairs(l,n):

# l = list

# n = number

return zip(*[l[i::n] for i in range(n)])

def main():

i=0

while i

print symbolslist[i]

url = urllib2.urlopen("http://www.theglobeandmail.com/globe-investor/markets/stocks/summary/?q=" +symbolslist[i])

root = bs4.BeautifulSoup(url)

[span.text for span in root("li.clearfix > span")]

[(span.text, span.findNextSibling('span').text) for span in root.select("li.clearfix > span.label")]

dims = [[]] *40

mess = [[]] *40

j=0

for span in root.select("li.clearfix > span.label"):

#print "%s\t%s" % ( span.text, span.findNextSibling('span').text)

dims[j] = span.text

mess[j] = span.findNextSibling('span').text

j+=1

nowtime = datetime.datetime.now().isoformat()

with open('globecdndata.csv','ab') as f:

fw = csv.writer(f, dialect='excel')

for s in range(0,37):

csvRow = s, symbolslist[i], nowtime, dims[s], mess[s]

print csvRow

fw.writerow(csvRow)

f.close()

i+=1

if __name__ == "__main__":

main()

我知道这是很难看的代码,但是嘿,我正在学习。CSV的输出如下所示:

(4,'T-T','2013-11-09T19:32:32.416000',u'Bidx0',u'36.88')

(5,'T-T','2013-11-09T19:32:32.416000',u'Askx0',u'36.93')

(6,'T-T','2013-11-09T19:32:32.416000',u'52周高点05/22',u'37.94')

“05/22”的日期每到一个新的高点或低点就会改变。这对于维度(字段)的名称并不理想。在

(7,'T-T','2013-11-09T19:32:32.416000',u'52-星期低06/27',u'29.52')

(35,“T-T”,“2013-11-09T19:32:32.416000”,u'Top 1000排名:',u'Profit:28收入:34资产:36')

出于某种原因,它将这些维度(字段)和度量(数据)集中在一起。隐马尔可夫模型。。。在

这是一些问题的清单。但是,就像我说的,我现在应该能弄清楚了。学到很多,谢谢。有人知道他们在做什么,提供一些意见是非常棒的。在


http://www.niftyadmin.cn/n/2643437.html

相关文章

swift学习--控制流

2019独角兽企业重金招聘Python工程师标准>>> 判断 if判断 普通条件判断 func demo2(){ let url NSURL(string: "www.baidu.com") //if判断url 可选类型有没有值 if url ! nil { let request NSURLRequest(URL: url!) print(request) } } //if let 判断可…

java gui登录界面_JAVA GUI编辑用户登陆界面

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼有一些错误,自己不知道怎么去改!!比如复选框事件,希望有人能给我点提示!!import java.awt.Checkbox;import java.awt.CheckboxGroup;import java.awt.Containe…

selenium grid2 初探

2019独角兽企业重金招聘Python工程师标准>>> #selenium grid2 初探 ##0 what is selenium grid? 简单说grid是一个分布式的应用,通过注册不同的节点(hub),提高用例执行效率。 ##1 when to use selenium grid? 不同浏览器,不同版本,不同操作…

java gc信息_JVM之GC回收信息详解

一、-xx:printgcdetails 打印gc日志参数配置:-xms10m -xmx10m -xx:printgcdetails -xx:printgcdatestamps -xx:printgctimestamps -xloggc:f:\gc1.log-xloggc:输出到文件2020-01-03t14:13:18.8660800: 0.224: [gc (allocation failure) [psyounggen: 20…

java webService

在 Internet 网络覆盖全球的今天,网络通信已经是当今软件开发过程中离不开的话题。在常用的Windows、Linux、Unix 系统当中,大部分的网络数据传输都是使用 TCP/IP、UDP/IP 作为底层传输协议的,而 HTTP 协议就是基于 TCP/IP 协议而运行的超文本…

java 网络多线程_Java 网络编程与多线程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.Reader;import java.net.ServerSocket;import java.net.S…

php 获取cdn 客户端,关于cdn 转发之后获取客户端真实ip 问题

我是群里的jocke通过CDN(nginx) 转发到workerman chat 获取的ip 都是 CDN 的ip,想获取真是的用户ip ,想改造的话,该从哪个地方入手,尝试着修改了 Workerman\Protocols\Websocket.php 增加了 parseHttpHeader 方法里面对 $buffer的…

bzip2压缩

bzip2和gzip相比大部分压缩的文件会更小点bzip2跟文件名 ,压缩后为.bzbzip2 -d [*.bz]解压缩bzip2和gzip都不能压缩目录bzcat可以查看.bz2的压缩文件内容,不用解压。转载于:https://blog.51cto.com/1024079574/1748193