可能很多人都聽說過爬蟲,也有一些人能夠熟練的使用(膜拜大佬),在本文,小編將對爬蟲進行簡單的介紹,并幫助基礎較差的童鞋進行簡單的入門。
首先,來看看什么是爬蟲。
俗話說得好,不想偷懶的小編不是好小編(每一只優秀的小編都是優秀的知識搬運工),咱們來看看百度百科對于爬蟲的定義:
好啦,現在我們對于爬蟲有了簡單的了解,下面本文將以爬取中傳要聞為例,對如何使用python爬蟲爬取網頁的數據和如何將數據存入數據庫進行講解。
基于workbench的數據庫簡單操作
這里先介紹數據庫的使用。小編使用MySQL workbench進行可視的數據處理。workbench是MySQL的一款圖形操作軟件,可以讓沒有sql基礎的童鞋也能快速上手。當然,想玩的熟練還是要學一下sql語句啦。
首先是下載MySQL和workbench,大家搜索MySQL去其官網即可下載安裝,網上教程也有很多,這里就不再贅述啦(偷懶+2)。
打開workbench,點擊下圖的小加號,進行數據庫創建。
創建界面如下,大家按照下圖操作即可。如果忘了你的數據庫密碼,可以百度MySQL數據庫密碼重置,有教程的哦(偷懶+3圖片)。
大家需要做的主要是填寫名稱,然后ok即可。數據庫會采用root的默認密碼。
進入你創建的數據庫后,在SCHEMAS的目錄的下方空白處,右鍵選擇新建表(create schema),填寫名稱,應用即可。
在你新建的表中,右鍵Tables選擇新建table(最終的數據存儲的地方),根據需要進行表頭和數據格式的填寫。小編在下圖為大家簡單介紹一些按鈕選項。
我們設置一個主鍵即可,根據你要爬取的數據,將中文數據的對應列的格式設置為utf8,并且對于文本較長的列,可以將字符長度設置的高一點,不然在程序運行中會報錯的哦。
另外,數據庫的設置可以根據你的爬蟲去修改。修改時,對相應的table右鍵選擇Truncate table,即可刪除數據庫已經存入的數據,避免臟庫。查看數據庫時,可以右鍵選擇表格圖形,即可預覽。
以上,都無需sql語言即可完成,但是小編還是建議大家去學習一下,可以去B站上課,也可以直接學習文檔,成為大佬,從你做起圖片。
基于python的爬蟲編寫
好了,我們現在建好了庫,就可以編寫爬蟲了。本次任務為從網站中傳要聞上爬取所有新聞的題目,網址,已經每一篇新聞的發布部門,發布時間,瀏覽量,文本和圖片鏈接,任重道遠啊。
導包
首先進行導包,安裝這些包可以在cmd運行pip install XX,即可。其中,requests訪問網頁需要用到;re為正則表達式的包,用于后期的文字處理;pymysql用于將數據存入數據庫;bs4用于解析網頁。
import requests
import re
import pymysql
from bs4 import BeautifulSoup as bs
定義存儲數據函數
功能為將爬取數據存入上一步建好的數據庫中。
# 將數據存入數據庫
def savenews(title,url,department,publishdate,count,content,piclinks):
#pysql.connect(數據庫URL,用戶名,密碼,數據庫名)
db = pymysql.connect(host="127.0.0.1", user="root", passwd="123456", db="cucnews", port=3306,charset="utf8")
cursor = db.cursor()
try:
cursor.execute('INSERT INTO news2(title,url,department,publishdate,count,content,piclinks) VALUES(%s,%s,%s,%s,%s,%s,%s)', (title,url,department,publishdate,count,content,piclinks))
db.commit()
except Exception as e:
print('1錯誤類型是',e.__class__.__name__)
print('錯誤明細是',e)
db.rollback()
db.close()
定義爬取信息的函數
我們先登錄至需要爬取的網站,中傳要聞。網址:http://www.cuc.edu.cn/news/1901/list1.htm
如下圖: