python實現簡單爬蟲

  • 2019 年 12 月 27 日
  • 筆記

前段時間將python的基礎寫在了頭條號裡面,最近一段時間在研究前端知識和laravel框架,把python的程式碼放了,今天不忙寫了一個簡單的爬蟲。下面是程式碼(基於3.7版本):

# -*- coding: UTF-8 -*-  import requests  from bs4 import BeautifulSoup  import pymysql  # 初始化方法  def start_method():      get_url = set_path()      print(get_url)      # 基礎資訊設置,拼合 url  def set_path():      # 基礎url鏈接      base_url = 'http://dl.sll.cn/major/'      # 定義鏈接組      url_array = []      # 設置起始點      start_num = 1      # 設置終點      end_num = 10000      # 循環生成url鏈接      for i in range(start_num, end_num):          # 拼接完整url          url = base_url + str(i) + '.html'          url_array.append(url)      return url_array      # print(url_array)  # 獲取 html    # 獲取內容並寫入庫  def start():      # 獲取拼合後的url鏈接      url_array = set_path()      for url in url_array:          # 獲取鏈接的資訊(狀態碼、url、頭資訊、cookie、源碼等)          content = requests.get(url)          # 設置編碼格式          content.coding = 'UTF-8'          # 以文本形式獲取源碼          content_text = content.text          # 利用解析器進行解析操作          article = BeautifulSoup(content_text)          # 標題          title = article.title.string          # 寫入資料庫          mysql_connect(title, url)      # 連接資料庫  def mysql_connect(title, url):      con = pymysql.connect(              # 資料庫地址              host='127.0.0.1',              # 埠              port=3306,              # 用戶名              user='root',              # 密碼              password='shenlin',              # 資料庫名稱              database='school',              # 編碼設置              charset='utf8'          )      # 得到連接游標      connect = con.cursor()      # 書寫 SQL 語句      sql = 'INSERT INTO test(title, url) VALUES("%s","%s")' % (title, url)      # 執行SQL,並獲取結果      res = connect.execute(sql)      # 關閉資料庫連接      connect.close()      con.close()        if res:          print(url + '------> 寫入成功')      else:          print(url + '------> 寫入失敗')      # 初始化調用方法  start()