gpt4 book ai didi

python - Beautifulsoup - get_text,单行输出

转载 作者:行者123 更新时间:2023-11-28 19:16:37 26 4
gpt4 key购买 nike

我正在尝试提取下一页的文本并将其保存到 CSV 文件的单个单元格中。但是,我总是在看不到任何“特殊”字符的地方换行(即即使文本中没有“\n”、“\t”等)。 CSV 文件的第二行也有多个非空单元格,而不是只将文本保存到一个单元格中。

代码如下:

# -*- coding: utf-8 -*-
#Python3.x
import urllib
from bs4 import BeautifulSoup
import requests, urllib, csv, re, sys
csvfile=open('test.csv', 'w', encoding='cp850', errors='replace')
writer=csv.writer(csvfile)

list_url= ["http://www.sec.gov/Archives/edgar/data/1025315/0000950127-05-000239.txt"]

for url in list_url:
base_url_parts = urllib.parse.urlparse(url)
while True:
raw_html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(raw_html)

#### scrape the page for the desired info
text_10k=[]
ten_k=soup.get_text()
ten_k=ten_k.strip().replace("\t", " ").replace("\r", " ").replace('\n', ' ')
text_10k.append(ten_k)

#Zip the data
output_data=zip([text_10k])

#Write the observations to the CSV file
writer=csv.writer(open('test_10k.csv','a',newline='', encoding='cp850', errors='replace'))
writer.writerows(output_data)
csvfile.flush()

我确信我的错误很简单,但自从我使用 Python 以来已经有几个月了......我绝对可以使用复习。非常感谢!

编辑:输出太长,无法完整复制,但这里有一个例子:

第 1 行,单元格 1:['-----BEGIN PRIVACY-ENHANCED MESSAGE-----\nProc-Type ..... -8-", '工作上限的变化
第 2 行,单元格 1:tal 主要归因于\n年的损失
第 2 行,单元格 2:以及因支付长期应付票据而导致的现金减少。\n\n

我希望所有内容都在一个单元格中(第 1 行,单元格 1),没有换行符。所以:
第 1 行,单元格 1:['-----BEGIN PRIVACY-ENHANCED MESSAGE-----\nProc-Type ..... -8-", '营运资本的变化主要归因于损失\n年以及由于支付长期应付票据而导致的现金减少。\n\n

*请注意,当它在第 1 行和第 2 行之间拆分时,“大写”一词中缺少“i”。不确定是什么原因导致该行以这种方式中断。

EDIT2:我通过保存为 .txt 文件使其工作(只要我在 Notepad++ 或类似的东西中打开输出就可以正常工作)。不过,我仍然不知道为什么它不能用作 CSV。

最佳答案

While True: 中,程序似乎会永远陷入 while 循环。将其更改为 if url: 应该让它每个 url 运行一次。我应该注意,在我将“lxml”添加为 BeautifulSoup soup = BeautifulSoup(raw_html, 'lxml') 的解析器之前,它不会运行。这似乎将每个 url 的信息放入一个单元格中。由于单元格中的信息量太大,可能无法在标准电子表格中显示。

# -*- coding: utf-8 -*-
# Python3.x
from bs4 import BeautifulSoup
import urllib
import csv

csvfile = open('test.csv', 'w', encoding='cp850', errors='replace')
writer = csv.writer(csvfile)

list_url = ["http://www.sec.gov/Archives/edgar/data/1025315/0000950127-05-000239.txt"]

for url in list_url:
base_url_parts = urllib.parse.urlparse(url)
if url:
raw_html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(raw_html, 'lxml')

#### scrape the page for the desired info
text_10k = []
ten_k = soup.get_text()
ten_k = ten_k.strip().replace("\t", " ").replace("\r", " ").replace('\n', ' ')
text_10k.append(ten_k)

#Zip the data
output_data=zip([text_10k])

#Write the observations to the CSV file
writer=csv.writer(open('test_10k.csv','a',newline='', encoding='cp850', errors='replace'))
writer.writerows(output_data)
csvfile.flush()

关于python - Beautifulsoup - get_text,单行输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32856497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com