【问题标题】:Python - assign print output csvPython - 分配打印输出csv
【发布时间】:2018-08-08 00:31:57
【问题描述】:

我正在做一个项目来抓取多个 twitter URL 并将他们的关注者数量分配给 csv:

username= ['LazadaPH','ZALORAPH','ShopeePH','eBayPhilippines','beauty_MNL']

for user in username:
   url = 'https://www.twitter.com/'+ user
   r = requests.get(url)
   soup = BeautifulSoup(r.content,'lxml')
   f = soup.find('li', class_="ProfileNav-item--followers")
   title = f.find('a')['title']
   num_followers = int(title.split(' ')[0].replace(',',''))
   print(user,num_followers)

输出如下:

LazadaPH 52841
ZALORAPH 29786
ShopeePH 7004
eBayPhilippines 874
beauty_MNL 2469

由于我对 python 很陌生(并且不希望提出多余的问题):但是有人可以指导我获取有关如何将此打印输出分配给 csv 并将其提取为两个的资源和教程列(第 1 列是网站字符串,第 2 列是关注者数量)。

有什么建议吗?

非常感谢!

【问题讨论】:

  • 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,describe the problem 以及迄今为止为解决它所做的工作。
  • 有很多关于输出结果到 csv 的帖子,例如this

标签: python csv twitter beautifulsoup screen-scraping


【解决方案1】:

使您的打印声明如下: print(user,';',num_followers) 所以它打印';'作为值的分隔符。然后将输出通过管道传输到文件:

python yourscript.py > yourcsv.csv 

【讨论】:

  • csv 需要逗号 (,) 而不是分号。
  • @KeyurPotdar 我们称之为“csv”,但很少有方言使用不同的分隔符 - 逗号、分号、制表符、管道等...
  • 实际上,我尝试了您的示例,如果您在 Excel 中打开 csv,它将在一个单元格中提供所有输出。我对这方面了解不多。所以,如果我错过了什么,对不起。
  • 需要将excel中的分隔符改为';' .很抱歉我现在没有 excel,因此无法向您指出步骤。
【解决方案2】:

您可以使用CSV module

例如:

import csv
with open('out.csv', 'w') as csvfile:
    r = csv.writer(csvfile, delimiter=',')     #   ----> COMMA Seperated
    for user in username:
       url = 'https://www.twitter.com/'+ user
       r = requests.get(url)
       soup = BeautifulSoup(r.content,'lxml')
       f = soup.find('li', class_="ProfileNav-item--followers")
       title = f.find('a')['title']
       num_followers = int(title.split(' ')[0].replace(',',''))
       r.writerow([user,num_followers])    #  ----> Adding Rows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多