python-3.x - 如何使用 python 从 csv 文件中的 url 列表中抓取文本并将其导出到另一个 csv 文件?
问题描述
我是 python 和 beautifulsoup 的新手,我正在尝试使用它通过使用循环从位于 csv 文件中的多个 url 列表中抓取文本数据,然后将 url 和文本导出到另一个 csv 文件中。该循环从 list1.csv 中定位 url,抓取文本数据并将其与 url 和文本数据一起放入 list2.csv。我下面的代码似乎只执行我的 10 个列表中的前两个 url。
from bs4 import BeautifulSoup
import requests
import csv
with open("list1.csv", "r") as f_urls, open("list2.csv", "w", newline="") as f_output:
csv_output = csv.writer(f_output)
csv_output.writerow(['url', 'text'])
for url in f_urls:
url = url.strip()
html = requests.get(url)
soup = BeautifulSoup(html.content, "html.parser")
text = soup.get_text()
csv_output.writerow([url, text])
我试图通过使用下面的代码来清理文本数据以仅获取内容,但它导致了空白输出。
results = soup.find_all('p')
str_cells = str(results)
cleantext = BeautifulSoup(str_cells, "lxml").get_text()
解决方案
推荐阅读
- google-apps-script - GAS 库中导出了哪些成员?
- c# - 如何将 ECDsa 公钥和私钥保存为字符串
- algorithm - 为什么递归合并排序优于迭代合并排序,即使后者具有辅助空间复杂度?
- python - 如何将两列/多组 groupby() objetc 转换为数据框?
- c++ - 谷歌 ORTools C++ Makefile
- android - 有什么方法可以在 Android 设备之间传输数据而无需用户接受连接?
- firebase - 数据库未存储在 firebase 数据库中
- bazel - 特定编译器的编译器标志
- python - 您可以使用 sphinx-apidoc 仅对子模块进行自动文档化吗?
- node.js - ECS Fargate 不支持绑定挂载