zoukankan      html  css  js  c++  java
  • python---使用数据库笔记----爬虫之二

    一、数据库的使用笔记

      关于Sqlite3的使用

      首先是常用命令

    sqlite3.connect() 打开一个到 SQLite 数据库文件 database 的链接。
    connection.cursor() 创建一个 cursor
    cursor.execute() sqlite3模块支持两种类型的占位符:问号和命名占位符(命名样式)
    connection.commit() 提交当前的事务。
    connection.close()

    关闭数据库连接。

      然后是建立一个简单的数据库

        代码如下

        

     1 # -*- coding: utf-8 -*-
     2 """
     3 Created on Wed May 29 23:45:24 2019
     4 
     5 @author: m1353
     6 """
     7 
     8 import sqlite3
     9 conn = sqlite3.connect('data.db')
    10 print("Connect database all green")
    11 c = conn.cursor()
    12 c.execute('''CREATE TABLE COMPANY
    13        (ID INT PRIMARY KEY     NOT NULL,
    14        NAME           TEXT    NOT NULL,
    15        AGE            INT     NOT NULL,
    16        ADDRESS        CHAR(50),
    17        SALARY         REAL);''')
    18 print("Table created all green")
    19 conn.commit()
    20 conn.close()

        效果如图

     

        会输出所写的print语句中的字符,就证明了我们创建成功。

        然后会出现一个这样的文件

    二、爬虫中国最好大学排名

    爬的是2017年的

    代码如下

     1 # -*- coding: utf-8 -*-
     2 """
     3 Created on Wed May 29 23:13:27 2019
     4 
     5 @author: m1353
     6 """
     7 
     8 import requests
     9 from bs4 import BeautifulSoup
    10 alluniv = []
    11 def getHTMLText(url):
    12     try:
    13         r = requests.get(url,timeout = 30)
    14         r.raise_for_status()
    15         r.encoding = 'utf-8'
    16         return r.text
    17     except:
    18         return "error"
    19 def fillunivlist(soup):
    20     data=soup.find_all('tr')
    21     for tr in data:
    22         ltd =tr.find_all('td')
    23         if len(ltd)==0:
    24             continue
    25         singleuniv=[]
    26         for td in ltd:
    27             singleuniv.append(td.string)
    28         alluniv.append(singleuniv)
    29 def writercsv(save_road,num,title):
    30     if os.path.isfile(save_road):
    31         with open(save_road,'a',newline='')as f:
    32             csv_write=csv.writer(f,dialect='excel')
    33             for i in range(num):
    34                 u=allUniv[i]
    35                 csv_write.writerow(u)
    36     else:
    37          with open('rank.csv','w',newline='')as f:
    38             csv_write=csv.writer(f,dialect='excel')
    39             csv_write.writerow(title)
    40             for i in range(num):
    41                 u=allUniv[i]
    42                 csv_write.writerow(u)
    43 title=["排名","学校名称","省市","总分","生源质量","培养结果","科研规模","科研质量","顶尖成果","顶尖人才","科技服务","产学研究合作","成果转化"]
    44 save_road="D:\test\rank.csv"
    45 def main(num):
    46     url = "http://www.zuihaodaxue.cn/zuihaodaxuepaiming2017.html"
    47     html=getHTMLText(url)
    48     soup=BeautifulSoup(html,"html.parser")
    49     fillunivlist(soup)
    50     writercsv(save_road,10,title)
    51 main(10)

    结果如图

    先是在输入的路径下储存了一个名字rank.csv文件

    然后打开它

  • 相关阅读:
    APP兼容性测试
    APP本地服务安全测试
    接口安全测试
    Python之日志操作(logging)
    Python之json编码
    Python之配置文件读写
    windows10 修改远程连接本地端口
    ctf学习
    telnet常见的错误
    连接ssh中常见的错误代码
  • 原文地址:https://www.cnblogs.com/qq1079179226/p/10947106.html
Copyright © 2011-2022 走看看