Я новичок в программировании на Python, и я практикую чистку различных значений с веб-сайтов.Я извлек элементы из определенного веб-сайта и теперь хочу записать их в файл .xls.
Вся веб-страница содержит 714 записей, включая дубликаты, но на листе Excel отображаются только 707 записей из-за почтового индекса() функция, которая останавливается, когда самый маленький список исчерпан.Здесь самый маленький список - список адресов электронной почты.Таким образом, он исчерпан, и итерация останавливается из-за свойства функции zip (). Я даже проверил его в условии if для записей, у которых нет адреса электронной почты, так что он отображает «Нет адреса электронной почты», но все ещетот же результат отображается с 704 с дубликатами записей.Пожалуйста, скажите, где я ошибаюсь, и, если возможно, предложите, что нужно сделать, чтобы удалить повторяющиеся записи и отобразить «Нет адреса электронной почты» там, где нет электронной почты.
from bs4 import BeautifulSoup as bs
import pandas as pd
res = requests.get('https://www.raywhite.com/contact/?type=People&target=people&suburb=Sydney%2C+NSW+2000&radius=50%27%27&firstname=&lastname=&_so=contact', headers = {'User-agent': 'Super Bot 9000'})
soup = bs(res.content, 'lxml')
names=[]
positions=[]
phone=[]
emails=[]
links=[l1['href'] for l1 in soup.select('.agent-name a')]
nlist = soup.find_all('li', class_='agent-name')
plist= soup.find_all('li',class_='agent-role')
phlist = soup.find_all('li', class_='agent-officenum')
elist = soup.find_all('a',class_='val withicon')
for n1 in nlist:
names.append(n1.text)
for p1 in plist:
positions.append(p1.text)
for ph1 in phlist:
phone.append(ph1.text)
for e1 in elist:
emails.append(e1.get('href') if e1.get('href') is not None else 'No Email address')
df = pd.DataFrame(list(zip(names,positions,phone,emails,links)),columns=['Names','Position','Phone','Email','Link'])
df.to_excel(r'C:\Users\laptop\Desktop\RayWhite.xls', sheet_name='MyData2', index = False, header=True)
Таблица Excel выглядит следующим образом, где мы можемсм. имя последней записи и ее адрес электронной почты не совпадает:
Ray White Excel Sheet