python数据分析实验二

三、 实验内容和实验步骤:
3.1 第一项内容:爬取大学排名
爬取最好大学网网页中549所国内大学的排名数据,并将排名、学校名称、省市、总分、社会声誉等内容打印出来。
3.2 第二项内容:爬取中国工程院院士信息
爬取中国工程院网页上,把每位院士的简介保存为本地文件,把每位院士的照片保存为本地图片,文本文件和图片文件都以院士的姓名为主文件。
4.1 任务一实验步骤:
(1)使用Google Chrome或其他浏览器打开下面的网址,然后在页面上右击,在弹出的菜单中选择“查看网页源代码”。
http://www.zuihaodaxue.cn/zuihaodaxuepaiming20链接19.html
(2)分析网页源代码的,确定每个学校的姓名和连接所在的HTML标签,为解析网页做准备。
(3)编写代码,爬取信息。

import re
from fake_useragent import UserAgent
import requests


def find_str(start, end, str):
    partten = r'(?<=%s).*?(?=%s)'%(start,end)
    list = re.findall(partten, str)
    return list


ua = UserAgent()
head = {'User-Agent': ua.random}
web_url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html'
req = requests.get(web_url, headers=head)
req.encoding = 'utf-8'
# 提取每一个学校的所有信息
list_tmp = find_str('', '', req.text)
# 学校名字
name_list = find_str('
','
'
,str(list_tmp)) # 培养规模 out_list = find_str( '','',str(list_tmp)) # 排名 位置 得分 temp_list = find_str('','',str(list_tmp)) list_r = [] list_l = [] list_s = [] i = 0 while i<len(temp_list): list_r.append(temp_list[i]) list_l.append(temp_list[i+2]) list_s.append(temp_list[i+3]) i = i+4 print('排名 学校名称 省市 总分 培养规模') for i in range(len(list_r)): print(' '+list_r[i]+' '+name_list[i]+' '+ list_l[i]+' '+list_s[i]+' '+ out_list[i])

4.2任务二实验步骤:
(1)使用Google Chrome或其他浏览器打开下面的网址,然后在页面上右击,在弹出的菜单中选择“查看网页源代码”。
http://www.cae.cn/cae/html/main/col48/column_48_1.html
(2)分析网页源代码的,确定每个院士的姓名和链接所在的HTML标签,为编写正则表达式做准备。
(3)使用浏览器打开任意一位院士的链接,然后查看并分析网页源代码,确定简介信息和照片所以的HTML标签,为编写正则表达式做准备。
(4)编写代码,爬取信息并创建本地文件。

from time import sleep

import requests
import re
import os
import urllib.request
from fake_useragent import UserAgent


def find_something(start, end, text):
    partten = r'(?<=%s).*?(?=%s)' % (start, end)
    list1 = re.findall(partten, text)
    return list1


def get_url_list():
    name_url = 'http://www.cae.cn/cae/html/main/col48/column_48_1.html'
    ua = UserAgent()
    head = {'User-Agent': ua.random}
    res = requests.get(name_url, headers=head)
    res.encoding = 'utf-8'
    url_list = find_something('
  • , '" target="_blank">', res.text) for i in range(len(url_list)): url_list[i] = 'http://www.cae.cn' + url_list[i] set1 = set(url_list) return set1 def get_txt_pic(url): ua = UserAgent() head = { 'User-Agent': ua.random } res = requests.get(url, headers=head) res.encoding = 'utf-8' picture1 = find_something(', '" style="width:150px;height:210px;"/>', res.text) picture = picture1[0] picture = 'http://www.cae.cn/' + picture list1 = find_something('
    ', '
    '
    , res.text) name = list1[0] list1 = find_something('

    ', '

    '
    , res.text) str1 = '' for i in range(1, len(list1)): str1 = str1 + list1[i] + '\n' str1 = str1.replace(" ", "") str1 = str1.replace(" ", "") f = open(name + '.txt', "w+", encoding='utf-8') f.write(str1) f.close() if not os.path.exists(name + '.jpg'): urllib.request.urlretrieve(picture, name + '.jpg') list1 = get_url_list() for li in list1: get_txt_pic(li) sleep(100)
  • 你可能感兴趣的:(python数据分析实验)