将web抓取的结果按名称保存到txt文件中



我从学校网站上抓取了一份教授联系信息列表,现在我想按名称单独保存,每个name txt文件都包含他们的电子邮件、电话和办公室。理想结果

目前我的代码是

from bs4 import BeautifulSoup as bs
import requests
url = 'https://www.cb.cityu.edu.hk/is/people/academic.html'
webpage = requests.get(url)
page = bs(webpage.content, 'html.parser')
#define list
name_list = []
phone_list = []
email_list = []
result = page.find_all('div', attrs = {'class': 'staff-details'})
for person in result:
print(person.text)

您可以使用循环来获取数据,同时将数据保存在文本文件中。

from bs4 import BeautifulSoup as bs
import requests
url = 'https://www.cb.cityu.edu.hk/is/people/academic.html'
webpage = requests.get(url)
page = bs(webpage.content, 'html.parser')
prof_list = page.select(".staff-details")

for i in prof_list:
name = i.select_one('.name >a').text
email = i.select_one('.list-info div.value:nth-child(2) > a').text
phone = i.select_one('.list-info div.value:nth-child(4)').text
office = i.select_one('.list-info div.value:nth-child(6)').text
with open(name+'.txt', 'w+') as file:
file.write("Email:n")
file.write(email)
file.write('nPhone:n')
file.write(phone)
file.write("nOfficen")
file.write(office)

在w+模式下使用上下文管理器打开具有所需名称的文件这是的样本代码

---> Inside Your For Loop
with open(file_name_come_here,"w+") as f :
f.write(content_come_here_as_string)

最新更新