首页 > 解决方案 > Python 循环遍历 csv 文件中的 url 返回 \ufeffhttps://

问题描述

我是 python 新手,我正在尝试遍历文件中的 url 列表并使用csv抓取网站,然后我想将其保存到文件中。但我无法抓取网页。如果我使用带有单个 url 的变量,如下所示:titleBeautifulSoupHeadlines.csvtitle

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']"

我不确定我做错了什么。

标签: pythonloopscsvurlbeautifulsoup

解决方案


\\ufeff您从文件中解析的 URL 上有一个字节顺序标记。看起来您的文件是签名文件,并且具有类似 utf-8-sig 的编码。

您需要使用文件阅读encoding='utf-8-sig'

在这里阅读更多。


推荐阅读