pycharm爬取软科-高等教育评价领先品牌院校一栏里面的内容
时间: 2023-07-12 10:00:46 浏览: 35
好的,以下是使用Python和BeautifulSoup解析软科-高等教育评价领先品牌院校页面并输出内容的代码:
```python
import requests
from bs4 import BeautifulSoup
# 发送HTTP请求并获取响应内容
url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html'
response = requests.get(url)
html = response.text
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(html, 'html.parser')
table = soup.find('table', {'id': 'rank'})
# 输出表格数据行
for tr in table.tbody.find_all('tr'):
row = []
for td in tr.find_all('td'):
row.append(td.text.strip())
print('\t'.join(row))
```
这个代码会将软科-高等教育评价领先品牌院校页面的表格数据解析并输出到控制台中。您可以根据需要对输出进行调整,例如将输出保存到文件中等。
相关问题
用pycharm爬取软科-高等教育评价领先品牌院校的内容并按照校名、地区、管理部门、类别、双一流 共计5个字段进行解析最后保存到csv文件的代码
以下是用PyCharm爬取软科-高等教育评价领先品牌院校的内容并按照校名、地区、管理部门、类别、双一流共计5个字段进行解析最后保存到csv文件的代码:
```
import requests
from bs4 import BeautifulSoup
import csv
# 设置请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 请求网页
url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html'
response = requests.get(url, headers=headers)
# 解析网页
soup = BeautifulSoup(response.content, 'html.parser')
table = soup.find('table', attrs={'class': 'tablelist'})
# 获取表格头部信息
keys = []
for th in table.find_all('th'):
keys.append(th.text)
# 获取表格数据
data = []
for tr in table.find_all('tr')[1:]:
row = {}
tds = tr.find_all('td')
row[keys[0]] = tds[0].text.strip()
row[keys[1]] = tds[1].text.strip()
row[keys[2]] = tds[2].text.strip()
row[keys[3]] = tds[3].text.strip()
row[keys[4]] = tds[4].text.strip()
data.append(row)
# 将数据保存到csv文件中
with open('university.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=keys)
writer.writeheader()
writer.writerows(data)
print('数据保存成功!')
```
解析:
1. 首先,我们需要设置请求头,以模拟浏览器请求。
2. 然后,我们发送请求获取网页的HTML内容。
3. 接着,我们使用BeautifulSoup库解析HTML内容,找到表格数据。
4. 我们首先获取表头信息,然后逐行获取表格数据,将每行数据保存为一个字典类型,再将所有行的字典类型保存为一个列表。
5. 最后,我们使用csv库将数据写入csv文件中。
注意事项:
1. 在写入csv文件时,需要指定编码为utf-8,并设置newline='',否则会出现空行。
2. 在获取表格数据时,需要注意表格头部信息和表格数据的不同处理方式。
3. 在保存数据时,需要注意将数据保存为字典类型,并使用csv.DictWriter()函数进行写入。
用pycharm爬取软科-高等教育评价领先品牌网站的院校的内容并按照校名、地区、管理部门、类别、双一流 共计5个字段进行解析最后保存到csv文件的代码
好的,以下是代码实现:
```python
import requests
from bs4 import BeautifulSoup
import csv
url = "http://www.zuihaodaxue.com/zuihaodaxuepaiming2021.html"
# 设置请求头信息
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 用csv库打开(创建)文件并写入表头
with open('universities.csv', 'w', newline='', encoding='utf-8-sig') as file:
writer = csv.writer(file)
writer.writerow(['校名', '地区', '管理部门', '类别', '双一流'])
# 发送请求并获取响应
response = requests.get(url, headers=headers)
# 解析网页内容
soup = BeautifulSoup(response.content.decode('utf-8'), 'lxml')
# 获取大学列表
universities = soup.select('#main > div > table > tbody > tr')
# 循环解析每个大学的信息并写入csv文件
with open('universities.csv', 'a', newline='', encoding='utf-8-sig') as file:
writer = csv.writer(file)
for university in universities:
# 获取每个字段的值
name = university.select_one('td:nth-child(2)').text.strip()
location = university.select_one('td:nth-child(3)').text.strip()
department = university.select_one('td:nth-child(4)').text.strip()
category = university.select_one('td:nth-child(5)').text.strip()
double_first_class = university.select_one('td:nth-child(6)').text.strip()
# 将信息写入csv文件
writer.writerow([name, location, department, category, double_first_class])
```
这段代码会爬取软科-高等教育评价领先品牌网站的 https://www.zuihaodaxue.com/zuihaodaxuepaiming2021.html 页面的内容,并将校名、地区、管理部门、类别、双一流等5个字段的信息解析出来,并保存到名为“universities.csv”的csv文件中。