I have the following for loop:
for titles in titles:
title = titles.xpath("a/text()").extract()
link = titles.xpath("a/@href").extract()
print(title, link)
How can I dump the title and link into a formmated .csv file?
I have the following for loop:
for titles in titles:
title = titles.xpath("a/text()").extract()
link = titles.xpath("a/@href").extract()
print(title, link)
How can I dump the title and link into a formmated .csv file?
You should use the python CSV module. Look here for more information: Writing List of Strings to Excel CSV File in Python.
Here is an example for your problem:
import csv
results = []
# your code... also add this to your for loop.
results.append([title, link])
csv_file = open("csv_file.csv",'wb')
wr = csv.writer(csv_file)
for row in results:
wr.writerow(row)
Something like this (documentation):
...
doc_path = "path/to/doc.csv" # must exist, first folder on the place
# where you are running the script!
with open(doc_path, 'a') as doc:
for entry in titles:
title = entry.xpath("a/text()").extract()
link = entry.xpath("a/@href").extract()
print(title, link)
doc.write(str(title)+','+str(link)+'\n')
Use a csv writer.
Basic usage:
import csv
with open('file.csv') as f:
writer = csv.writer(f)
writer.writerow(["title", "link"])
result = []
for titles in titles:
title = titles.xpath("a/text()").extract()
link = titles.xpath("a/@href").extract()
print(title, link)
result += [title + ',' + link + '\n']
with open("result.csv" "w+") as f:
f.writelines(result)