1. 程式人生 > >python爬蟲循環導入MySql數據庫

python爬蟲循環導入MySql數據庫

ron 9.png 需要 ets 版本 對象 root 內容 clas

1、開發環境

操作系統:win10 Python 版本:Python 3.5.2 MySQL:5.5.53

2、用到的模塊

技術分享

沒有的話使用pip進行安裝:pip install xxx xxx需要安裝的模塊

3、分析鏈接(博客官網:https://www.cnblogs.com/)

這裏我們簡單分析首頁部分

技術分享

經分析首頁的分頁系統鏈接變量是最後一個數字,所以可將訪問的鏈接寫成如下模式,這樣執行的時候加個循環就能訪問需要訪問的所有頁面內容

技術分享

4、分析頁面內容

整個頁面 咱們需要的信息是博主所發博客的信息,例如:

技術分享

精確的的說是需要提取博客的標題,簡介,發布時間以及博客鏈接

找到此頁面按f12來審查元素

技術分享

鼠標點下此箭頭,然後放到頁面內容上,找到咱們所查找的元素,在下面代碼部分會出現相應的html:

技術分享

鼠標右鍵,選擇copy element,可將這塊信息復制到文本,找個文本文檔保存下來如下部分代碼:

技術分享

這個內容包含一個博客所有信息,接下來用正則提取我們需要的內容即可

5、正則表達式

title= re.compile(‘<a class="titlelnk.*?>(.*?)</a>‘,re.S)

title1= re.findall(title,html)

html是整個網頁所有代碼文檔,這兩行代碼就將這個網頁裏面所有博客標題存入title1列表裏面

其中<a class="titlelnk.*?>(.*?)</a>是匹配到所有class為titlelnk的a標簽,(.*?)是咱們提取的內容

6、鏈接數據庫

db = pymysql.connect("127.0.0.1","root","root","crawler",charset="utf8")#打開數據鏈接,

pymysql.connect()裏面前四個參數我就不多說了,charset="utf8"這個參數可省只是確保編碼正確,不然有些環境下無法插入數據

cursor cursor = db.cursor()# 使用 cursor() 方法創建一個遊標對象

7、MYSQL插入語句

技術分享

8、整理代碼

技術分享

原理、代碼都在這個,想提取所要內容,分析網站即可,當然並不是所有網站都能爬,特殊網站具有反爬措施,需要學習更多知識(訪問頻率控制,代理IP池等等)

python爬蟲循環導入MySql數據庫