python爬蟲基礎操作:爬取MySQL數據庫存儲的信息

@本文來源於公衆號:csdn2299,喜歡可以關注公衆號 程序員學府

本文實例講述了Python3爬蟲學習之MySQL數據庫存儲爬取的信息。分享給大家供大家參考,具體如下:

數據庫存儲爬取的信息(MySQL)

爬取到的數據爲了更好地進行分析利用,而之前將爬取得數據存放在txt文件中後期處理起來會比較麻煩,很不方便,如果數據量比較大的情況下,查找更加麻煩,所以我們通常會把爬取的數據存儲到數據庫中便於後期分析利用。

這裏,數據庫選擇MySQL,採用pymysql 這個第三方庫來處理python和mysql數據庫的存取,python連接mysql數據庫的配置信息

db_config ={
  'host': '127.0.0.1',
  'port': 3306,
  'user': 'root',
  'password': '',
  'db': 'pytest',
  'charset': 'utf8'
}

以爬取簡書首頁文章標題以及url爲例,先分析抓取目標信息,在這裏插入圖片描述
如上圖,文章題目在a標籤中,且url(href)只含有後半部分,所以在存儲的時候,最好把它補全。

mysql:新建一個數據庫pytest,建立一張名爲titles的表,表中字段分別爲id(int自增),title(varchar),url(varchar),如下:在這裏插入圖片描述
進行數據庫操作的思路爲:獲得數據庫連接(connection)->獲得遊標(cursor)->執行sql語句(execute)->事物提交(commit)->關閉數據據庫連接(close),具體代碼實現如

# -*- coding:utf-8 -*-
from urllib import request
from bs4 import BeautifulSoup
import pymysql
# mysql連接信息(字典形式)
db_config ={
  'host': '127.0.0.1',
  'port': 3306,
  'user': 'root',
  'password': '',
  'db': 'pytest',
  'charset': 'utf8'
}
# 獲得數據庫連接
connection = pymysql.connect(**db_config)
# 數據庫配置,獲得連接(參數方式)
# connection = pymysql.connect(host='127.0.0.1',
#            port=3306,
#            user='root',
#            password='',
#            db='pytest',
#            charset='utf8')
url = r'http://www.jianshu.com/'
# 模擬瀏覽器頭
headers = {
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
}
page = request.Request(url, headers=headers)
page_info = request.urlopen(page).read().decode('utf-8')
soup = BeautifulSoup(page_info, 'html.parser')
urls = soup.find_all('a', 'title')
try:
  # 獲得數據庫遊標
  with connection.cursor() as cursor:
    sql = 'insert into titles(title, url) values(%s, %s)'
    for u in urls:
      # 執行sql語句
      cursor.execute(sql, (u.string, r'http://www.jianshu.com'+u.attrs['href']))
  # 事務提交
  connection.commit()
finally:
  # 關閉數據庫連接
  connection.close()

代碼執行結果:
在這裏插入圖片描述

非常感謝你的閱讀
大學的時候選擇了自學python,工作了發現吃了計算機基礎不好的虧,學歷不行這是沒辦法的事,只能後天彌補,於是在編碼之外開啓了自己的逆襲之路,不斷的學習python核心知識,深入的研習計算機基礎知識,整理好了,我放在我們的微信公衆號《程序員學府》,如果你也不甘平庸,那就與我一起在編碼之外,不斷成長吧!

其實這裏不僅有技術,更有那些技術之外的東西,比如,如何做一個精緻的程序員,而不是“屌絲”,程序員本身就是高貴的一種存在啊,難道不是嗎?[點擊加入]想做你自己想成爲高尚人,加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章