Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从csv文件的第一列读取整个URL_Python_Url - Fatal编程技术网

Python 如何从csv文件的第一列读取整个URL

Python 如何从csv文件的第一列读取整个URL,python,url,Python,Url,我正在尝试从csv文件的第一列读取URL。在csv文件中,我总共要读取6051个URL。为此,我尝试了以下代码: urls = [] with open("C:/Users/hyoungm/Downloads/urls.csv") as csvfile: blogurl = csv.reader(csvfile) for row in blogurl: row = row[0] print(row)

我正在尝试从csv文件的第一列读取URL。在csv文件中,我总共要读取6051个URL。为此,我尝试了以下代码:

    urls = []
    with open("C:/Users/hyoungm/Downloads/urls.csv") as csvfile:
        blogurl = csv.reader(csvfile)
        for row in blogurl:
            row = row[0]
            print(row)
列恩(世界其他地区) 然而,显示的URL数量只有65个。我不知道为什么URL的总数与csv文件不同

有谁能帮我弄清楚如何从csv文件中读取所有URL(总共6051个)

为了从csv文件中读取所有URL,我还尝试了几种不同的代码,导致相同数量的URL(即65个URL)或失败,例如: (一)

(二)

(三)

4) 及

我希望输出最初在csv文件中收集的6051个URL,而不是65个URL

在阅读完所有的url之后,我将从每个url中抓取文本数据。我应该使用所有6051个URL获取以下文本数据。请单击图像的以下链接:


以下两种方法适合我:

import requests

r = requests.get('https://raw.githubusercontent.com/GemmyMoon/MultipleUrls/master/urls.csv')
urls = r.text.splitlines()

print(len(urls))  # Returns 6051


您是否可以在此处发布部分CSV文件?可能是格式问题(意外的换行符或分隔符)。由于您的CSV不是很大,您可以使用open(…)作为csvfile:content=file.read()完整地读取它。然后,您可以进行一些分析以检查文件的读取是否正确,例如查看
len(content.splitlines())==6051
@EliasStrehle谢谢您的建议。我试过你的代码,它显示了6051的总数。然而,链接仍然只有65个。此外,使用您建议的代码,我无法提取我能够提取的文本数据(请参阅我问题中的附图)。您介意我将csv文件发送到您的电子邮件或其他渠道吗?我找不到如何将文件附加到这里。再次感谢你!尝试将获取URL列表与实际抓取URL分开。这使得调试更容易。使用
打印(行)
运行循环时,您看到了什么?它是只打印65个URL还是打印6051个URL?当我运行print(row)时,它会显示65个URL,尽管第一列中实际上有6051个URL。我不知道为什么代码不能读取所有6051个URL。我需要所有的URL来从中抓取文本数据(如上图所示)。你介意用我的csv文件再试一次吗?你能上传到公共的地方吗?比如在GitHub上?哇,我会试试这些。谢谢你的支票!
    urls = pd.read_csv("C:/Users/hyoungm/Downloads/urls.csv")
    with closing(requests.get(urls, stream = True)) as r:
        reader = csv.reader(r.iter_lines(), delimiter = ',', quotechar = '""')
        for row in reader:
            print(row)
            len(row)
    with open("C:/Users/hyoungm/Downloads/urls.csv") as csvfile:
        lines = csv.reader(csvfile)
        for i, line in enumerate(lines):
            if i == 0:
        for line in csvfile:
            print(line[1:])
            len(line)
    blogurls = []
    with open("C:/Users/hyoungm/Downloads/urls.csv") as csvfile:
        r = csv.reader(csvfile)
        for i in r:
            blogurl = i[0]
            r = requests.get(blogurl)
            blogurls.append(blogurl)

    for url in blogurls:
        page = urlopen(url[0]).read()
        soup = BeautifulSoup(page, "html.parser")
    len(blogurls)
import requests

r = requests.get('https://raw.githubusercontent.com/GemmyMoon/MultipleUrls/master/urls.csv')
urls = r.text.splitlines()

print(len(urls))  # Returns 6051
import csv
import requests
from io import StringIO

r = requests.get('https://raw.githubusercontent.com/GemmyMoon/MultipleUrls/master/urls.csv')
reader = csv.reader(StringIO(r.text))
urls = [line[0] for line in reader]

print(len(urls))  # Returns 6051