自學人工智慧:1-2使用python寫爬蟲
前言
用python結合selenium模組寫爬蟲程式簡單多了,還可直接驅動瀏覽器,比無頭瀏覽器更加直觀,同時加深了自己對爬蟲的理解
場景
工作原因要採集1688網站上的店鋪資訊(突然意識到這文章是釋出在阿里雲棲社群,明目張膽採集馬爸爸家店鋪資訊是不是不太好),另外訪問頻繁,經常需要驗證碼,python這時可以大顯身手。
準備
- 安裝selenium模組
- 下載driver外掛geckodriver.exe,下載地址https://github.com/mozilla/geckodriver/releases
- 放到python安裝根目錄
部分程式碼
from selenium import webdriver # 匯入webdriver包
driver = webdriver.Firefox() # 初始化一個火狐瀏覽器例項,記得安裝火狐瀏覽器
driver.maximize_window() # 最大化瀏覽器,根據需要
driver.get("https://www.1688.com") # 通過get()方法,開啟一個url站點
driver.quit() #關閉並退出瀏覽器
然後通過css選擇器、xpath等定位目標位置。
由於資料需要入庫,平時經常使用mysql資料庫,百度了一番,引入pymysql模組
import pymysql
# 開啟資料庫連線
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用 cursor() 方法建立一個遊標物件 cursor
cursor = db.cursor()
# 使用 execute() 方法執行 SQL 查詢
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法獲取單條資料.
data = cursor.fetchone()
print ("Database version : %s " % data)
# 關閉資料庫連線
db.close()
再完善程式碼,就可以完成店鋪資訊初步採集。
補充:驗證碼處理
一開始,嘗試自己寫程式碼識別圖片驗證碼,首先對圖片進行處理:二值化、降噪,這兩步容易實現,
接著分割字元時,對於字母型別連在一起的不知道如何正確處理,於是取內容部分的寬度進行等分。
到了識別環節,查閱資料得知:有可以直接拿來用的識別庫;還可以通過機器學習來訓練識別驗證碼。
考慮到自己基礎薄弱,機器學習來訓練實踐起來難度高,再者短期內這些知識使用頻率不高,最終放棄自己寫程式碼識別驗證碼。
最後的解決方案:
偷懶,選用了第三方的圖片識別服務,提交驗證碼圖片到服務商,返回正確的結果。-,-
總結
程式雖然簡單,確實感受到了python程式碼的簡潔效率,需要使用的功能,直接引入模組查詢使用方法就能幫助快速完成功能。
現在僅僅會使用前輩提供的模組,通過python來實現自己想要的小功能,背後的邏輯、python的程式設計思維,還需逐步理解深入。
相關文章
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- 《用Python寫網路爬蟲》--編寫第一個網路爬蟲Python爬蟲
- Python爬蟲:手把手教你寫迷你爬蟲架構Python爬蟲架構
- 使用python的scrapy來編寫一個爬蟲Python爬蟲
- Python爬蟲之路-chrome在爬蟲中的使用Python爬蟲Chrome
- 【python爬蟲】python爬蟲demoPython爬蟲
- Python為什麼叫爬蟲?Python為什麼適合寫爬蟲?Python爬蟲
- python爬蟲是什麼?為什麼用python語言寫爬蟲?Python爬蟲
- 3 行寫爬蟲 - 使用 Goribot 快速構建 Golang 爬蟲爬蟲Golang
- Python使用Mechanize模組編寫爬蟲的要點解析Python爬蟲
- python網路爬蟲(14)使用Scrapy搭建爬蟲框架Python爬蟲框架
- Python爬蟲之路-selenium在爬蟲中的使用Python爬蟲
- 什麼是網路爬蟲?為什麼用Python寫爬蟲?爬蟲Python
- 用Golang寫爬蟲(六) - 使用collyGolang爬蟲
- 使用JavaScript編寫的爬蟲程式JavaScript爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- 使用 Golang 寫爬蟲經驗總結Golang爬蟲
- Python爬蟲之Pyspider使用Python爬蟲IDE
- python就是爬蟲嗎-python就是爬蟲嗎Python爬蟲
- 寫個爬蟲唄爬蟲
- 使用Python自動填寫問卷星(pyppeteer反爬蟲版)Python爬蟲
- python 爬蟲Python爬蟲
- python爬蟲Python爬蟲
- python簡介怎麼寫-python爬蟲簡歷怎麼寫Python爬蟲
- 老猿為什麼寫Python爬蟲教程Python爬蟲
- Python爬蟲教程-00-寫在前面Python爬蟲
- 為什麼寫爬蟲用Python語言?爬蟲Python
- 用python語言編寫網路爬蟲Python爬蟲
- 為什麼使用Scrapy框架來寫爬蟲?框架爬蟲
- 使用 Typhoeus 和 Ruby 編寫的爬蟲程式爬蟲
- 使用 Kotlin DSL 編寫網路爬蟲Kotlin爬蟲
- Python爬蟲教程-02-使用urlopenPython爬蟲
- python爬蟲之Scrapy 使用代理配置Python爬蟲
- 零基礎自學用Python 3開發網路爬蟲(一)Python爬蟲
- 利用python編寫爬蟲爬取淘寶奶粉部分資料.1Python爬蟲
- Python爬蟲教程-01-爬蟲介紹Python爬蟲
- Java爬蟲與Python爬蟲的區別?Java爬蟲Python
- python爬蟲初探--第一個python爬蟲專案Python爬蟲