1. 程式人生 > >Python爬蟲——爬取中國高校排名前100名並寫入MySQL

Python爬蟲——爬取中國高校排名前100名並寫入MySQL

  本篇分享講爬取中國高校排名前100名並將其寫入MySQL,這樣做的好處是:1.將資料存入資料庫,能永久利用;2.能利用資料庫技術做一些其他操作。爬取的網頁是:http://gaokao.xdf.cn/201702/10612921.html, 截圖如下(部分):
  中國高校排名前100名
  我們的程式在Linux平臺上執行,需要用到MySQL和Python中的MySQLdb模組,其中MySQLdb 是封裝MySQL訪問和操作的模組。我們的思路是:先利用urllib和BeautifulSoup爬取前100名的表格,返回list形式,再利用MySQLdb將list寫入資料中。
  

def get_html(url):
        html = urllib.request.urlopen(url)  
        content = html.read()  
        html.close()
        soup = BeautifulSoup(content, "lxml"
) table = soup.find('tbody') count = 0 lst = [] for tr in table.children: if isinstance(tr, bs4.element.Tag): td = tr('td') if count >= 2: lst.append([td[i]('p')[0].string.replace('\n','').replace('\t'
,'') for i in range(8) if i != 3]) count += 1 return lst

  該段程式碼實現了爬取中國高校前100名的表格,並保留了名次、學校名稱、地區、總分、辦學型別、星級排名、辦學層次這7個欄位。其中的url即為開始提到的網站網址。

    url = 'http://gaokao.xdf.cn/201702/10612921.html'
    universities_lst = get_html(url)
    # 開啟資料庫連線
    db = MySQLdb.connect("localhost","root","147369","test",charset='utf8')
    # 使用cursor()方法獲取操作遊標 
    cursor = db.cursor()
    # 使用execute方法執行SQL語句
    cursor.execute("SET
NAMES utf8"); cursor.execute("""create table university_rank(排名 int(3),高校 varchar(20),地區 varchar(10),總分 decimal(9,2),辦學型別 varchar(10), 星級排名 varchar(8),辦學層次 varchar(40)) default charset = utf8""") for x in universities_lst: sql = "insert into university_rank values('%s','%s','%s','%s','%s','%s','%s')"%(x[0],x[1],x[2],x[3],x[4],x[5],x[6]) cursor.execute(sql) db.commit() # 關閉資料庫連線 db.close() print("Create table already! Please check Mysql!")

  該段程式碼將上述爬取的表格寫入MySQL資料庫中,先新建一張university_rank表格,再講值插入。我們可以去MySQL中檢視。
  大學排名MySQL
  這說明我們確實將爬取的高校排名寫入了MySQL,接下來我們就只需要對資料庫進行操作了,比如說我想知道在這前100中,每個省份的學校數量,可以通過以下命令實現:
  count group
  從中我們可以,前100名中的高校中,北京最多,有19所,江蘇其次,11所,上海第三,有9所。當然,我們還可以用該資料庫做一些其他有趣的事情~~
  


  本次分享到此結束,如有不足之處,還往批評指正。
  P.S.附上本篇分享的整個程式:
  
'''
Created on Aug 16, 2017

@author: vagrant
'''
# -*- coding: UTF-8 -*-
import bs4
import MySQLdb
import urllib.request  
from bs4 import BeautifulSoup 

def get_html(url):
        html = urllib.request.urlopen(url)  
        content = html.read()  
        html.close()
        soup = BeautifulSoup(content, "lxml")      
        table = soup.find('tbody')
        count = 0 
        lst = []
        for tr in table.children:
            if isinstance(tr, bs4.element.Tag):
                td = tr('td')
                if count >= 2:
                    lst.append([td[i]('p')[0].string.replace('\n','').replace('\t','') for i in range(8) if i != 3])
                count += 1

        return lst

if __name__ == '__main__':
    url = 'http://gaokao.xdf.cn/201702/10612921.html'
    universities_lst = get_html(url)
    # 開啟資料庫連線
    db = MySQLdb.connect("localhost","root","147369","test",charset='utf8')
    # 使用cursor()方法獲取操作遊標 
    cursor = db.cursor()
    # 使用execute方法執行SQL語句
    cursor.execute("SET NAMES utf8");
    cursor.execute("""create table university_rank(排名 int(3),高校 varchar(20),地區 varchar(10),總分 decimal(9,2),辦學型別 varchar(10),
                                        星級排名 varchar(8),辦學層次 varchar(40)) default charset = utf8""")
    for x in universities_lst:
        sql = "insert into university_rank values('%s','%s','%s','%s','%s','%s','%s')"%(x[0],x[1],x[2],x[3],x[4],x[5],x[6])
        cursor.execute(sql)
    db.commit()

    # 關閉資料庫連線
    db.close()  
    print("Create table already! Please check Mysql!")

相關推薦

Python爬蟲——中國高校排名100寫入MySQL

  本篇分享講爬取中國高校排名前100名並將其寫入MySQL,這樣做的好處是:1.將資料存入資料庫,能永久利用;2.能利用資料庫技術做一些其他操作。爬取的網頁是:http://gaokao.xdf.cn/201702/10612921.html, 截圖如下(部分

php從爬蟲的txt檔案按行讀取寫入儲存到excel,csv中

需求:採集攜程網酒店資訊步驟:    使用火車頭編寫採集規則並儲存到txt檔案 編寫php指令碼讀取txt檔案並按照規則儲存到csv程式碼:<?php /** * 讀取txt檔案,存入csv表格

Python爬蟲】從html裏中國大學排名

ext 排名 所有 一個 requests 空格 創建 .text request from bs4 import BeautifulSoupimport requestsimport bs4 #bs4.element.Tag時用的上#獲取網頁頁面HTMLdef

python 爬蟲例項 中國大學排名

import requests from bs4 import BeautifulSoup import bs4 def gegHTMLText(url): try: r = requests.get(url) r.raise_for_status()

Python爬蟲 - 百度html代碼200行

http src mage bsp bubuko str 百度 爬蟲 圖片 Python爬蟲 - 爬取百度html代碼前200行 - 改進版, 增加了對字符串的.strip()處理 Python爬蟲 - 爬取百度html代碼前200行

使用Python中國大學排名格式化對其輸出內容

首先,我們需要注意幾點 1.可以使用isinstance語句配合bs4庫中的bs4.element.Tag判斷獲取到的物件是不是標籤物件. 2.輸出內容並且要求他用空白補齊時,系統預設用的是英文空白

Python爬蟲-糗事百科段子

hasattr com ima .net header rfi star reason images 閑來無事,學學python爬蟲。 在正式學爬蟲前,簡單學習了下HTML和CSS,了解了網頁的基本結構後,更加快速入門。 1.獲取糗事百科url http://www.qiu

python爬蟲頁面源碼在本頁面展示

一個 nts ring 想要 strip code 空白 列表 ngs python爬蟲在爬取網頁內容時,需要將內容連同內容格式一同爬取過來,然後在自己的web頁面中顯示,自己的web頁面為django框架 首先定義一個變量html,變量值為一段HTML代碼 >&

python 爬蟲 證券之星網站

爬蟲 周末無聊,找點樂子。。。#coding:utf-8 import requests from bs4 import BeautifulSoup import random import time #抓取所需內容 user_agent = ["Mozilla/5.0 (Windows NT 10.0

python爬蟲海量病毒文件

tle format nbsp contex logs request spl tde __name__ 因為工作需要,需要做深度學習識別惡意二進制文件,所以爬一些資源。 # -*- coding: utf-8 -*- import requests import re

Python爬蟲廣州大學教務系統的成績(內網訪問)

enc 用途 css選擇器 狀態 csv文件 表格 area 加密 重要 用Python爬蟲爬取廣州大學教務系統的成績(內網訪問) 在進行爬取前,首先要了解: 1、什麽是CSS選擇器? 每一條css樣式定義由兩部分組成,形式如下: [code] 選擇器{樣式} [/code

python爬蟲——古詩詞

爬蟲 古詩詞 實現目標 1.古詩詞網站爬取唐詩宋詞 2.落地到本地數據庫頁面分析 通過firedebug進行頁面定位: 源碼定位: 根據lxml etree定位div標簽:# 通過 lxml進行頁面分析 response = etree.HTML(data

利用Python爬蟲淘寶商品做數據挖掘分析實戰篇,超詳細教程

實戰 趨勢 fat sts AI top 名稱 2萬 安裝模塊 項目內容 本案例選擇>> 商品類目:沙發; 數量:共100頁 4400個商品; 篩選條件:天貓、銷量從高到低、價格500元以上。 項目目的 1. 對商品標題進行文本分析 詞雲可視化 2.

簡易python爬蟲boss直聘職位,寫入excel

python爬蟲寫入excel1,默認城市是杭州,代碼如下#! -*-coding:utf-8 -*-from urllib import request, parsefrom bs4 import BeautifulSoupimport datetimeimport xlwt starttime = dat

Python 爬蟲微信文章

微信爬蟲 爬取微信文章 爬取公眾號文章搜狗微信平臺為入口 地址:http://weixin.sogou.com/ --------------------------------------------------------------搜索關鍵詞“科技”對比網址變化情況查看網址http://wei

python爬蟲QQ說說並且生成詞雲圖,回憶滿滿!

運維開發 網絡 分析 matplot 容易 jieba 編程語言 提示框 然而 Python(發音:英[?pa?θ?n],美[?pa?θɑ:n]),是一種面向對象、直譯式電腦編程語言,也是一種功能強大的通用型語言,已經具有近二十年的發展歷史,成熟且穩定。它包含了一組完善而且

Python爬蟲OA幸運飛艇平臺獲取數據

sta 獲取數據 status fail attrs color wrapper 排行榜 req 安裝BeautifulSoup以及requests 打開window 的cmd窗口輸入命令pip install requests 執行安裝,等待他安裝完成就可以了 Beaut

利用python爬蟲圖片並且制作馬賽克拼圖

python爬蟲 splay ise 做事 c-c sea mage item -a   想在妹子生日送妹子一張用零食(或者食物類好看的圖片)拼成的馬賽克拼圖,因此探索了一番= =。   首先需要一個軟件來制作馬賽克拼圖,這裏使用Foto-Mosaik-Edda(網上也有在

Python - 爬蟲和登陸github

用API搜尋GitHub中star數最多的前十個庫,並用post方法登陸並點選收藏 一 用API搜尋GitHub中star數最多的前十個庫 利用GitHub提供的API爬取前十個star數量最多的Python庫     GitHub提供了很多專門為爬蟲準

Python爬蟲豆瓣電影、讀書Top250排序

更新:已更新豆瓣電影Top250的指令碼及網站 概述 經常用豆瓣讀書的童鞋應該知道,豆瓣Top250用的是綜合排序,除使用者評分之外還考慮了很多比如是否暢銷、點選量等等,這也就導致了一些近年來評分不高的暢銷書在這個排行榜上高高在上遠比一些經典名著排名還高,於是在這裡打算重新給To