- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试提取下一页的文本并将其保存到 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/
我想访问标签的文本,但是 get_text() 和 text 属性都不适用于以下 HTML: BATS Multicast PITCH 例如,这里我想获取值:BATS Multicast PIT
我可以使用此代码块从网站解析我需要的字段: response = requests.get(index_url) soup = bs4.BeautifulSoup(response.text, "lx
我正在尝试提取下一页的文本并将其保存到 CSV 文件的单个单元格中。但是,我总是在看不到任何“特殊”字符的地方换行(即即使文本中没有“\n”、“\t”等)。 CSV 文件的第二行也有多个非空单元格,而
我试图通过解析 html 来编译以下代码,但出现错误: import string, urllib2, urlparse, csv, sys from urllib import quote from
我正在尝试使用 beautifulsoup get_text() 方法从 html 标签中获取所有文本。我使用 Python 2.7 和 Beautifulsoup 4.4.0。它适用于大多数时间。但
问候, 想知道我们是否需要使用 get_text() 显式释放由 xmldomnodeptr 分配的字符串 即 IXMLDOMNodePtr pNode; /*some code*/
这个问题在这里已经有了答案: Can I remove script tags with BeautifulSoup? (3 个答案) 关闭 7 年前。
我正在用 解析 HTML 文本 Telephone = soup.find(itemprop="telephone").get_text() 如果电话号码位于 itemprop 标记之后的 HTML
我想创建一个顶级窗口并在其中使用此函数。 没有任何例子...... 完整说明位于 /usr/share/ada/adainclude/gtkada/gtk-gentry.ads function Ge
这个问题在这里已经有了答案: how to get text from within a tag, but ignore other child tags (2 个答案) 关闭 6 年前。 假设我有
这可能看起来很简单,但我无法让它发挥作用。最近刚开始学习scraping,也遇到了这个问题。尝试了 python REPL 中的代码,它似乎可以工作,但是不确定为什么当我编码它时,它无法工作。 这是我
我正在尝试使用 BeautifulSoup 从网页中获取文本。 下面是我为此编写的脚本。它有两个参数,第一个是输入的 HTML 或 XML 文件,第二个是输出文件。 import sys from b
在BeautifulSoup中,.text和.get_text()有什么区别吗? 获取元素的文本应该首选哪个? >>> from bs4 import BeautifulSoup >>> >>> ht
我正在尝试使用 bs4 删除所有 html/javascript,但是,它并没有摆脱 javascript。我仍然在文本中看到它。我该如何解决这个问题? 我尝试使用 nltk 效果很好,但是 clea
我正在尝试从以下 html 结构中提取文本: Text to extract 我有以下 B
我正在学习 bs4 的一些教程。我正在尝试使用“a”获取以下示例的 get_text()。教程返回结果 McDermott International 和 MDR 没有问题。但是当我这样做时,我得到了
我正在尝试从网站上抓取文本,同时保留其 使用 '\n' 格式化我的输出的标签秒。但是,我找不到一种有效的方法来做到这一点。 (注意:我不能使用 get_text(separator='\n'),因为像
我有一大块用 bs4 提取的 html 如下 Satin Smooth Universal Protective Wax Pot Collars by Satin Smooth 我使用 text
我想从 https://www.medindia.net/doctors/drug_information/abacavir.htm 的多个页面中提取多个药品信息, https://www.medin
我使用 BS4 (python3) 从 html 文件中提取文本。我的文件如下所示: Hello World! 当我调用 get_text() 方法时,输出是 Hello Wor
我是一名优秀的程序员,十分优秀!