我用scrapy从网站上提取数据。纯正的版本是这样的:
{eps: 25}
{eps:[]}
{eps:[]}
{eps:[]}
{eps: 50}
{eps:[]}
{eps:[]}
{eps:[]}
现在我不知道为什么空白的东西会出现,但是我能把它们清除掉。问题是当我使用.replace
时,结果如下:
^{pr2}$
我试过.split
,.sub
,.strip
都没有用。我不知道还能做什么。在
更新:
添加源代码
# coding: utf-8
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.exporter import CsvItemExporter
import re
import csv
import urlparse
from stockscrape.items import EPSItem
class epsScrape(BaseSpider):
name = "eps"
allowed_domains = ["investors.com"]
ifile = open('test.txt', "r")
reader = csv.reader(ifile)
start_urls = []
for row in ifile:
url = row.replace("\n","")
if url == "symbol":
continue
else:
start_urls.append("http://research.investors.com/quotes/nyse-" + url + ".htm")
ifile.close()
def parse(self, response):
f = open("eps.txt", "a+")
sel = HtmlXPathSelector(response)
sites = sel.select("//tbody/tr")
items = []
for site in sites:
item = EPSItem()
item['eps'] = site.select("td[contains(@class, 'rating')]/span/text()").extract()
strItem = str(item)
newItem = strItem.replace(" ","").replace("'","").replace("{eps:[","").replace("]}","").replace("u","").replace("\\r\\n",'').replace('$
f.write("%s\n" % newItem)
f.close()
在文本.txt里面有个股票代码:
MSFT
A
H
以此类推
{cd1>也包含空行。在
如果您发现最后要删除所有新行,则拆分新行并删除所有空字符串值:
这将删除所有空行,用新的换行符重新连接剩余的非空行。在
相反,如果您是通过打印或写入文件逐行生成输出,则当行为空时,只需不打印或写入:
^{pr2}$if
语句测试包含的不仅仅是空白的行。在相关问题 更多 >
编程相关推荐