2016-03-01 85 views
0
from lxml import html 
import requests 
import csv 
page = requests.get('http://www.google.com/finance?q=[%28exchange+%3D%3D+%22ABC%22%29]&restype=company&noIL=1&start=0&num=1500') 
tree = html.fromstring(page.content) 

#Scrape stocks companies and symbols 

stocks = tree.xpath('//a [not(@class)][@id][@href]/text()') 
#This will create a list of prices 
stocks.remove('IRM Group Berhad'); 
stocks.remove('A & M Realty Berhad'); 
stocks.remove('BERJAYA FOOD BERHAD- A SHARES'); 


print 'Stocks= ', stocks 

# open a file for writing. 
csv_out = open('KLSE.csv', 'wb') 

mywriter = csv.writer(csv_out) 

rows = zip(stocks) 
mywriter.writerows(rows) 

csv_out.close() 

我想刪除所有包含單詞「Berhad」的行,因爲我不想逐個刪除它。任何線索如何做到這一點?Python:想刪除包含特定單詞的行

+0

你是什麼意思「不想刪除它一一」嗎?爲了完成任務,需要O(n)操作,所以如果不查看所有行,不可能做到這一點 –

回答

0

假設股票只是一個通常的列表,你可以嘗試像

trimmed_stocks = [ x for x in stocks if not 'Berhad' in x ] 

這不是從您的文章清楚如果說,BERHAD或BERHAD應排除爲好,但這些可以同樣處理。

+0

,謝謝。它按預期工作。 – bkcollection

+0

在這種情況下,請接受我的答案或cjauvin's,以便StackOverflow知道問題已解決。謝謝 :) – TheBigH

1

你可以這樣來做:

stocks = [s for s in stocks if 'berhad' not in s.lower()] 
相關問題