【发布时间】:2014-11-29 22:29:23
【问题描述】:
我正在尝试创建一个网络爬虫。我目前只是在 Youtube 上测试它,但我打算在以后扩展它以做更多事情。目前,我还在学习。
目前我正在尝试将信息导出到 csv,下面的代码是我目前所拥有的,当我运行它来提取标题描述时,它似乎工作得很好。但是,当我添加代码以获取“视图”和“喜欢”时,它会弄乱输出文件,因为它们中有逗号。
有谁知道我可以做些什么来解决这个问题?
import urllib2
import __builtin__
from selenium import webdriver
from selenium.common.exceptions import NoSuchAttributeException
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
from time import sleep
from random import randint
from lxml import etree
browser = webdriver.Firefox()
time.sleep(2)
browser.get("https://www.youtube.com/results?search_query=funny")
time.sleep(2)
browser.find_element_by_xpath("//*[@id='section-list']/li/ol/li[1]/div/div/div[2]/h3/a").click()
time.sleep(2)
url = browser.current_url
title = browser.find_element_by_xpath("//*[@id='eow-title']").text
views = browser.find_element_by_xpath("//*[@id='watch7-views-info']/div[1]").text
likes = browser.find_element_by_xpath("//*[@id='watch-like']/span").text
dislikes = browser.find_element_by_xpath("//*[@id='watch-dislike']/span").text
tf = 'textfile.csv'
f2 = open(tf, 'a+')
f2.write(', '.join([data.encode('utf-8') for data in [url]]) + ',')
f2.write(', '.join([data.encode('utf-8') for data in [title]]) + ',')
f2.write(', '.join([data.encode('utf-8') for data in [views]]) + ',')
f2.write(', '.join([data.encode('utf-8') for data in [likes]]) + ',')
f2.write(', '.join([data.encode('utf-8') for data in [dislikes]]) + '\n')
f2.close()
【问题讨论】:
-
Python 有一个名为
csv的模块,为读取和写入 csv 文件提供了一个很好的接口。 -
你能给我一个例子,说明我如何将它与我创建的东西一起使用吗?我以前尝试过使用它,但我无法掌握它。将不胜感激。谢谢!
标签: python csv web-scraping regional-settings