将打印结果存储在Python的数据框中

时间:2018-07-23 11:08:10

标签: python python-3.x pandas dataframe web-scraping

我想从网络获取所有URL,并将结果存储为变量。到目前为止,我已经找到以下代码:

from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen("https://www.sport.es/") # Insert your URL to extract
bsObj = BeautifulSoup(html.read());

for link in bsObj.find_all('a'):
    print(link.get('href'))

结果就是我想要的,但是我需要将其存储为变量以构建数据框。我该怎么办?

感谢所有人。

最诚挚的问候,

1 个答案:

答案 0 :(得分:2)

首先,构造一个链接列表。您可以在for循环中添加一个空列表:

list_of_links = []

for link in bsObj.find_all('a'):
    list_of_links.append(link.get('href'))

或者,更简洁地说,您可以使用列表理解:

list_of_links = [link.get('href') for link in bsObj.find_all('a')]

然后,您可以通过字典将列表提供给pd.DataFrame构造函数:

import pandas as pd

df = pd.DataFrame({'links': list_of_links})