【问题标题】:Unable to get results in a row spreading across columns无法在跨列的行中获得结果
【发布时间】:2017-11-24 22:23:04
【问题描述】:

我用 python 编写了一个脚本来从 yelp.com 的某个页面获取评论。刮刀完美地完成了它的工作。结果也已成功写入 csv 文件。该页面上有 19 条评论。我在连续 19 行中得到的结果。但是,我希望在 19 个不同的列中得到结果。

这是网站链接:Link

为了更清楚,我得到的结果如下:

1. review
2. review1
3. review2
4. review3

我希望得到的结果:

A        B        C       D
review review1 review2 review3

这是我的脚本:

import requests
import csv
from bs4 import BeautifulSoup

outfile = open("new_file.csv","w",newline="")
writer = csv.writer(outfile)

res = requests.get("use_above_link").text
soup = BeautifulSoup(res,"lxml")
for link in soup.select(".review-content"):
    review = [item.text for item in link.select("p")]
    print(review)
    writer.writerow(review)

【问题讨论】:

    标签: python python-3.x csv web-scraping


    【解决方案1】:

    你必须压缩你的数组:

    import requests
    import csv
    from bs4 import BeautifulSoup
    
    with open("new_csv_file",'w', newline="",encoding="UTF-8") as doc:
        writer = csv.writer(doc, delimiter=";")
    
        res = requests.get("use_above_link").text
        soup = BeautifulSoup(res,"lxml")
        for link in soup.select(".review-content"):
            reviews = [item.text for item in link.select("p")]
            z = zip(reviews)
            writer.writerow(z)
    

    【讨论】:

    • 它给了我与上述脚本相同的结果。你可能注意到我已经明确提到了I expect to get the results in 19 different columns instead
    • 我理解你的愿望。事实上,当我回到过去时,压缩一个数组为我解决了这个问题。这也是我在搜索解决方案时在 SO 上看到的答案,所以我想知道为什么它不适用于您的代码。但是,很高兴您可以让您的代码正常工作! :)
    【解决方案2】:

    已经找到了解决方案。应该是这样的:

    import requests
    import csv
    from bs4 import BeautifulSoup
    
    outfile = open("new_file.csv","w",newline="")
    writer = csv.writer(outfile)
    
    res = requests.get("above_link").text
    soup = BeautifulSoup(res,"lxml")
    review = [item.text for item in soup.select(".review-content p")]
    print(review)
    writer.writerow(review)
    

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多