如何使用Requests.Get生成大量网站的状态码列表
How to use Requests.Get to produce a list of status codes for a large number of sites
我是新手 python 程序员,我正在尝试使用请求库查找大量 url 列表的 http 状态代码,将这些状态代码放入它们自己的数组中,然后添加状态代码数组作为新列返回到数据框。
这是我正在使用的代码的一个非常基本的版本。
import requests
import pandas as pd
targets =pd.read_csv('/file/path.csv',header=None)
targetList =targets.values
for i in targetList:
r = requests.get (f"{i}")
r.status_code
我不关心数据帧操作,这看起来很简单。而且我可以获得作为离散事件工作的请求
r=requests.get(targetList.item(0))
code=r.status_code
code
200
当我尝试 运行 for 循环时,出现以下错误。
InvalidSchema: No connection adapaters were found for "['https://www.google.com']"
很明显,程序至少能够理解列表中的项目是字符串,并且理解这些字符串的内容。但是发生了我不明白的断开连接。
使用:
targetList.item(0)[2:-2]
以下代码为我重现了您的错误:
import requests
u = "['https://www.google.com']"
r=requests.get(u)
code=r.status_code
code
和以下 returns 200:
import requests
u = "['https://www.google.com']"
r=requests.get(u[2:-2])
code=r.status_code
code
变量 i
为您提供行中所有值的列表 - 即使您只有一列 - 并且您必须从该列表中获取单个值 - 即。 i[0]
import pandas as pd
data = {
'urls': ['url1','url2','url2'],
}
df = pd.DataFrame(data)
for row in df.values:
url = row[0]
#print('row:', f'{row}')
#print('url:', f'{url}')
print('row:', row)
print('url:', url)
#requests.get(url)
print('---')
结果:
row: ['url1']
url: url1
---
row: ['url2']
url: url2
---
row: ['url2']
url: url2
---
或者你应该 select 单列 - df['urls']
for url in df['urls']:
#print('url:', f'{url}')
print('url:', url)
#requests.get(url)
print('---')
结果:
url: url1
---
url: url2
---
url: url2
---
我是新手 python 程序员,我正在尝试使用请求库查找大量 url 列表的 http 状态代码,将这些状态代码放入它们自己的数组中,然后添加状态代码数组作为新列返回到数据框。
这是我正在使用的代码的一个非常基本的版本。
import requests
import pandas as pd
targets =pd.read_csv('/file/path.csv',header=None)
targetList =targets.values
for i in targetList:
r = requests.get (f"{i}")
r.status_code
我不关心数据帧操作,这看起来很简单。而且我可以获得作为离散事件工作的请求
r=requests.get(targetList.item(0))
code=r.status_code
code
200
当我尝试 运行 for 循环时,出现以下错误。
InvalidSchema: No connection adapaters were found for "['https://www.google.com']"
很明显,程序至少能够理解列表中的项目是字符串,并且理解这些字符串的内容。但是发生了我不明白的断开连接。
使用:
targetList.item(0)[2:-2]
以下代码为我重现了您的错误:
import requests
u = "['https://www.google.com']"
r=requests.get(u)
code=r.status_code
code
和以下 returns 200:
import requests
u = "['https://www.google.com']"
r=requests.get(u[2:-2])
code=r.status_code
code
变量 i
为您提供行中所有值的列表 - 即使您只有一列 - 并且您必须从该列表中获取单个值 - 即。 i[0]
import pandas as pd
data = {
'urls': ['url1','url2','url2'],
}
df = pd.DataFrame(data)
for row in df.values:
url = row[0]
#print('row:', f'{row}')
#print('url:', f'{url}')
print('row:', row)
print('url:', url)
#requests.get(url)
print('---')
结果:
row: ['url1']
url: url1
---
row: ['url2']
url: url2
---
row: ['url2']
url: url2
---
或者你应该 select 单列 - df['urls']
for url in df['urls']:
#print('url:', f'{url}')
print('url:', url)
#requests.get(url)
print('---')
结果:
url: url1
---
url: url2
---
url: url2
---