返回具有可用web抓取功能的网站列表



我对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]>

最新更新