我对Python完全陌生,正在启动一个web抓取项目。我有一个数据帧,看起来像下面的
ID | 网站 |
---|---|
0001 | www.website1.com |
0002 | www.website2.com |
9999 | www.website9999.com |
这里有几个问题。
首先,您没有向我们提供有关您传递给代码的数据的信息。我假设这是一只熊猫DataFrame
,看起来像:
>>> df
id website
0 1 www.google.com
1 2 www.kodak.com
2 3 www.mentos.com
>>> list(df['website'])
['www.google.com', 'www.kodak.com', 'www.mentos.com']
最初,您将网站列表传递给requests.get
:
x = requests.get(df["Website"])
这不起作用,因为requests.get
需要一个字符串作为第一个参数,而不是列表或类似列表的对象。您需要对列值进行迭代,类似于:
>>> for website in df['website']:
... res = requests.get(website)
... print(res)
但这将失败:
requests.exceptions.MissingSchema: Invalid URL 'www.google.com': No scheme supplied. Perhaps you meant http://www.google.com?
正如错误消息所示,这里的问题是您传入的是主机名而不是URL。您需要添加一个模式,http://
或https://
。例如:
>>> for website in df['website']:
... res = requests.get(f'http://{website}')
... print(res)
结果是:
<Response [200]>
<Response [200]>
<Response [200]>