Python 如何从csv文件的第一列读取整个URL
我正在尝试从csv文件的第一列读取URL。在csv文件中,我总共要读取6051个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)
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