我试图通过检查以下某些条件将一些数据写入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并从中获取数据?
答案 0 :(得分:2)
将最后一行更改为:
outputcsv.writerow([url])