python - Python 循环遍历 csv 文件中的 url 返回 \ufeffhttps://
问题描述
我是 python 新手,我正在尝试遍历文件中的 url 列表并使用csv
抓取网站,然后我想将其保存到文件中。但我无法抓取网页。如果我使用带有单个 url 的变量,如下所示:title
BeautifulSoup
Headlines.csv
title
url = 'https://www.space.com/japan-hayabusa2-asteroid-samples-landing-date.html'
resp = req.get(url)
soup = BeautifulSoup(resp.text, 'lxml')
print(soup.title.text)
它工作得很好,我得到了标题Japanese capsule carrying pieces of asteroid Ryugu will land on Earth Dec. 6 | Space
但是当我使用循环时,
import csv
with open('urls_file2.csv', newline='', encoding='utf-8') as f:
reader = csv.reader(f)
for url in reader:
print(url)
resp = req.get(url)
soup = BeautifulSoup(resp.text, 'lxml')
print(soup.title.text)
我得到以下
['\ufeffhttps://www.foxnews.com/us/this-day-in-history-july-16']
和一条错误消息
InvalidSchema: No connection adapters were found for "['\\ufeffhttps://www.foxnews.com/us/this-day-in-history-july-16']"
我不确定我做错了什么。
解决方案
\\ufeff
您从文件中解析的 URL 上有一个字节顺序标记。看起来您的文件是签名文件,并且具有类似 utf-8-sig 的编码。
您需要使用文件阅读encoding='utf-8-sig'
在这里阅读更多。
推荐阅读
- java - 从 Activity 调用片段方法的正确方法是什么?
- c# - .NET 5 HttpClient 摘要式身份验证
- python - catch_error_yn 函数不起作用
- c# - 将字符串作为 UnmanagedCallersOnly 本机方法的 blittable 类型传递
- python - np.nan 在 GeoSeries 中变为 None
- laravel - 在 null Laravel 上调用成员函数 delete()
- java - 如何在android中读取两种不同的字符串格式
- javascript - Javascript从另一个函数更改变量
- javascript - 无法将我的搜索呈现给浏览器
- javascript - 我想将所有结果添加到 csv,但它只添加第一页结果