Я пытаюсь добавить информацию из веб-сайта в столбцы. У меня есть набор данных, который выглядит следующим образом:
COL1 COL2 COL3
... ... bbc.co.uk
, и я хотел бы иметь набор данных, который включает новые столбцы:
COL1 COL2 COL3 Website Address Last Analysis Blacklist Status \
... ... bbc.co.uk
IP Address Server Location City Region
Эти новые столбцы взяты с этого веб-сайта: https://www.urlvoid.com/scan/bbc.co.uk. Мне нужно будет заполнить каждый столбец соответствующей информацией.
Например:
COL1 COL2 COL3 Website Address Last Analysis Blacklist Status \
... ... bbc.co.uk Bbc.co.uk 9 days ago 0/35
Domain Registration IP Address Server Location City Region
1996-08-01 | 24 years ago 151.101.64.81 (US) United States Unknown Unknown
К сожалению, у меня возникли некоторые проблемы при создании новых столбцов и заполнении их информацией, скопированной с сайта. У меня может быть больше сайтов для проверки, не только bb c .co.uk. Пожалуйста, смотрите ниже используемый код. Я уверен, что есть лучший (и менее запутанный) подход к этому. Я был бы очень признателен, если бы вы помогли мне разобраться. Спасибо
РЕДАКТИРОВАТЬ:
Как показано в примере выше, к уже существующему набору данных, включающему три столбца (col1, col2 and col3
), я должен добавить также поля, которые поступают из очистки (Website Address,Last Analysis,Blacklist Status, ...
) ). Поэтому для каждого URL я должен иметь информацию, связанную с ним (например, bbc.co.uk
в примере).
COL1 COL2 COL3 Website Address Last Analysis Blacklist Status \
... ... bbc.co.uk Bbc.co.uk 9 days ago 0/35
... ... stackoverflow.com
... ... ...
IP Address Server Location City Region
COL1 COL2 COL3 Website Address Last Analysis Blacklist Status \
... ... bbc.co.uk Bbc.co.uk 9 days ago 0/35
... ... stackoverflow.com Stackoverflow.com 7 days ago 0/35
Domain Registration IP Address Server Location ...
996-08-01 | 24 years ago 151.101.64.81 (US) United States ...
2003-12-26 | 17 years ago ...
(формат не очень хороший, но я думаю, что этого может быть достаточно, чтобы дать вам представление об ожидаемом результате).
Обновленный код:
urls= ['bbc.co.uk', 'stackoverflow.com', ...]
for x in urls:
print(x)
r = requests.get('https://www.urlvoid.com/scan/'+x)
soup = BeautifulSoup(r.content, 'lxml')
tab = soup.select("table.table.table-custom.table-striped")
dat = tab[0].select('tr')
for d in dat:
row = d.select('td')
original_dataset[row[0].text]=row[1].text
К сожалению, есть кое-что, что я делаю неправильно, так как он копирует только информацию из первого URL, проверенного на веб-сайте (т. Е. Bb c .co.uk), во все строки нового столбца.