使用python将数据写入csv或文本文件

时间:2013-01-03 05:54:53

标签: python csv urllib2

我试图通过检查以下某些条件将一些数据写入csv文件

我将在文本文件中列出一个网址列表,如下所示

urls.txt

www.example.com/3gusb_form.aspx?cid=mum
www.example_second.com/postpaid_mum.aspx?cid=mum
www.example_second.com/feedback.aspx?cid=mum

现在我将浏览文本文件中的每个url并使用python中的urllib2模块读取url的内容,并将在整个html页面中搜索字符串。如果找到所需的字符串,我会将该URL写入csv文件。

但是当我尝试将数据(url)写入csv文件时,它会将每个字符保存为一个coloumn,如下所示,而不是将整个url(数据)保存到一列

h   t   t   p   s   :   /   /   w   w   w...... 

Code.py

import urllib2
import csv

search_string = 'Listen Capcha'

html_urls = open('/path/to/input/file/urls.txt','r').readlines()
outputcsv = csv.writer(open('output/path' + 'urls_contaning _%s.csv'%search_string, "wb"),delimiter=',', quoting=csv.QUOTE_MINIMAL)
outputcsv.writerow(['URL'])

for url in html_urls:
    url = url.replace('\n','').strip()
    if not len(url) == 0:
        req = urllib2.Request(url)
        response = urllib2.urlopen(req)
        if str(search_string) in response.read():
            outputcsv.writerow(url)

上面的代码有什么问题,为了将整个url(字符串)保存到csv文件中的一列,需要做些什么?

另外,我们如何将数据写入文本文件?

被修改

我也有一个像http://www.vodafone.in/Pages/tuesdayoffers_che.aspx这样的网址, 这个网址实际上会被重定向到浏览器中的http://www.vodafone.in/pages/home_che.aspx?cid=che,但当我尝试通过以下代码时,它与上面给出的网址相同

import urllib2, httplib

httplib.HTTPConnection.debuglevel = 1  
request = urllib2.Request("http://www.vodafone.in/Pages/tuesdayoffers_che.aspx")
opener = urllib2.build_opener()
f = opener.open(request)
print f.geturl()

结果

http://www.vodafone.in/pages/tuesdayoffers_che.aspx?cid=che 

那么最后如何使用urllib2捕获重定向的url并从中获取数据?

1 个答案:

答案 0 :(得分:2)

将最后一行更改为:

            outputcsv.writerow([url])