Python爬蟲學習==>第五章:爬蟲常用庫的安裝

来源:https://www.cnblogs.com/wuzhiming/archive/2018/03/31/8673390.html
-Advertisement-
Play Games

學習目的: 爬蟲有請求庫(request、selenium)、解析庫、存儲庫(MongoDB、Redis)、工具庫,此節學習安裝常用庫的安裝 正式步驟 Step1:urllib和re庫 導入時,沒有回顯,就表示安裝正確,可以正常使用 Step2:requests庫安裝 Step3:selenium庫 ...


學習目的:

         爬蟲有請求庫(request、selenium)、解析庫、存儲庫(MongoDB、Redis)、工具庫,此節學習安裝常用庫的安裝

正式步驟

Step1:urllib和re庫


 

  1. 這兩個庫在安裝Python中,會預設安裝,下麵代碼示例調用:
    >>> import urllib
    >>> import urllib.request
    >>> urllib.request.urlopen("http://www.baidu.com")
    <http.client.HTTPResponse object at 0x0000000002F05F60>
    >>> import re

    導入時,沒有回顯,就表示安裝正確,可以正常使用

Step2:requests庫安裝


 

  1. 打開windows命令行cmd,輸入命令:pip3 install requests
  2. 驗證安裝成功的代碼示例
    >>> import requests
    >>> requests.get("http://www.baidu.com")
    <Response [200]> 

Step3:selenium庫的安裝


 

  1. 自動化測試的根基
  2. 在cmd中輸入命令:pip3 install selenium
  3. 測試代碼
    >>> import selenium
    >>> from selenium import webdriver

     

  4. 安裝Chromedriver,打開http://npm.taobao.org/mirrors/chromedriver   ,點擊下載chromedriver_win32.zip
  5. 解壓後,把 chromedriver.exe 放到D:\Python36\Scripts
  6. 使用selenium庫打開chrome瀏覽器代碼示例:
    >>> from selenium import webdriver
    >>> driver = webdriver.Chrome()

    運行後,會打開一個谷歌瀏覽器,此外需要註意的是chrome版本需要大於等於55,因為驅動是這樣的要求

 

Step4:phantomjs  


 

  PhantomJS 是一個基於WebKit的伺服器端 JavaScript API。它全面支持web而不需瀏覽器支持,其快速,原生支持各種Web標準: DOM 處理, CSS 選擇器, JSON, Canvas, 和 SVG。PhantomJS可以用於頁面自動化,網路監測,網頁截屏,以及無界面測試等。

簡而言之:基於WebKit的,沒有界面的瀏覽器。

  閃亮的功能點:PhantomJS可以用於頁面自動化,網路監測,網頁截屏,以及無界面測試。

  優勢:跨平臺,易上手。

安裝步驟:

  1. 下載網址http://phantomjs.org/download.html
  2. 解壓,獲得phantomjs.exe 文件路徑 D:\phantomjs-2.1.1-windows\bin,然後配置到用戶變數中的path變數中
  3. 打開cmd,輸入:phantomjs

ps:chrome headlessl可以替代phantomjs,為什麼呢?因為selenium不再支持phantomjs了

 

Step5:chrome headless


 

  測試代碼(剛剛百度來的):這個是chrome的示例

from selenium import webdriver
options=webdriver.ChromeOptions()
options.set_headless()
# options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver=webdriver.Chrome(options=options)
driver.get('http://httpbin.org/user-agent')
driver.get_screenshot_as_file('test.png')
driver.close()

  FireFox瀏覽器的示例:

  

from selenium import webdriver
options = webdriver.FirefoxOptions()
options.set_headless()
# options.add_argument('-headless')
options.add_argument('--disable-gpu')
driver=webdriver.Firefox(firefox_options=options)
driver.get('http://httpbin.org/user-agent')
driver.get_screenshot_as_file('test.png')
driver.close()

 

 

Step6:lxml


 

  簡介:lxml是python中處理xml的一個非常強大的庫,可以非常方便的解析和生成xml文件。

  1.  安裝命令:pip3 install lxml
    PS:如果安裝失敗了,可以多試幾次,或者使用whl安裝

 

Step7:beautifulsoup


 

   簡介:Beautiful Soup 是一個可以從HTML或XML文件中提取數據的Python庫。它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式.Beautiful Soup會幫你節省數小時甚至數天的工作時間。

  安裝步驟:

  1. 依賴lxml庫,所以要先安裝lxml
  2. cmd: pip3 install beautifulsoup4
  3. 測試代碼:
    >>> from bs4 import BeautifulSoup
    >>> soup = BeautifulSoup('<html></html>','lxml')
    >>> 

 

Step8:pyquery


 

  簡介:pyquery相當於jQuery的python實現,可以用於解析HTML網頁等。它的語法與jQuery幾乎完全相同。

  安裝步驟:

  1. 安裝命令: pip3 install pyquery
  2. 測試代碼
    >>> from pyquery import PyQuery as pq
    >>> doc = pq('<html>Python</html>')
    >>> result = doc('html').text()
    >>> result
    'Python'

    pyquery的基礎使用方法可以參考:https://www.cnblogs.com/lei0213/p/7676254.html

 

Step9:pymysql


 

  簡介:PyMySQL 是在 Python3.x 版本中用於連接 MySQL 伺服器的一個庫

  安裝步驟:

  1. 命令:pip3 install pymysql
  2. 測試代碼:
    >>> import pymysql
    >>> conn = pymysql.connect(host='localhost',user='root',password='123456',port=3306,db='mysql')
    >>> cursor = conn.cursor()
    >>> cursor.execute('select * from db')
    2
    >>> cursor.fetchone()
    ('localhost', 'performance_schema', 'mysql.session', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N')
    >>> cursor.fetchall()
    (('localhost', 'sys', 'mysql.sys', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y'),)

     

Step10:pymongo


 

  簡介:PyMongo是驅動程式,使python程式能夠使用Mongodb資料庫,使用python編寫而成

   安裝步驟:

  1. 安裝命令:pip3 install pymongo
  2. 測試代碼:
    >>> import pymongo
    >>> client = pymongo.MongoClient('localhost')
    >>> db = client['newtest']
    >>> db['table'].insert({'name':'python'})
    ObjectId('5abe67d64bc36b29c0a61a03')
    >>> db['table'].find_one({'name':'python'})
    {'_id': ObjectId('5abe67d64bc36b29c0a61a03'), 'name': 'python'}

     

Step11:redis


 

  簡介:Python分散式爬蟲比較經常使用的應該是scrapy框架加上Redis記憶體資料庫,中間的調度任務等用scrapy-redis模塊實現。

  安裝步驟:

  1. 安裝命令:pip3 install redis
  2. 測試代碼:
    #數據的插入和獲取
    >>> import redis
    >>> r = redis.Redis('localhost',6379)
    >>> r.set('name','python')
    True
    >>> r.get('name')

     

Step12:flask


 

  簡介:Flask是一個Python編寫的Web 微框架,讓我們可以使用Python語言快速實現一個網站或Web服務

  安裝步驟:

  1. 安裝命令:pip3 install flask
  2. 測試代碼:
    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def hello_world():
        return 'Hello World!'
    
    if __name__ == '__main__':
        app.run()

    參考文檔:官方文檔:http://docs.jinkan.org/docs/flask/

 

Step13:django


  簡介:web伺服器框架

  安裝步驟:

  1. 安裝命令:pip3 install django
  2. 測試代碼 import django

 

Step14:jupyter


 

  安裝步驟:

  1. 安裝命令: pip3 install jupyter
  2. 運行->打開cmd,輸入:jupyter notebook
  3. 然後瀏覽器會自動打開應用程式

 

學習總結:


 

  生活過於安逸,是感覺不到行業的競爭壓力,所以還是多學習,增強自己的測試的核心競爭能力吧。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 廢話不多少,下麵是對我從開發微信小程式的第一步開始到發佈的總結,覺得對您有幫助的話,可以贊賞下,以對我表示鼓勵。 一:首先註冊登錄微信公眾平臺,這個平臺很重要,以後查文檔全在上面看。https://mp.weixin.qq.com/。然後在設置=》開發設置那裡獲取appID; 二:下載微信開發者工具 ...
  • vue使用element ui的el input監聽不了回車事件,原因應該是element ui自身封裝了一層input標簽之後,把原來的事件隱藏了,所以如下代碼運行是無響應的: 解決方法需要在事件後面加上.native ...
  • 優先順序從高到低排列,瀏覽器優先滿足前面的規則 1,!important優先順序最高 2,內聯樣式 3,作者>讀者>瀏覽器 4,優先順序權重加法 id選擇器+100/個 類/偽類選擇器+10/個 元素名+1/個 5,權重值相等則以後出現的為準 ...
  • 在iPhone中調試,大體上與上文 安卓中的移動頁面調試 類似,區別主要是iOS系統中的一些限制,導致某些工具無法使用。 本文基於此,簡要介紹在iPhone中如何調試頁面。 最終可以實現在Mac平臺使用Safari(或結合ios_webkit_dubug_proxy使用Chrome)調試手機中Saf ...
  • 筆者最近在做一個項目的後臺,用到了EasyUI的datagrid控制項,並開啟了行內編輯功能,實際上也就是使用了edatagird這個空間,引用了edatagrid.js,一切似乎都做的順風順水,添加數據、修改數據都沒有問題,然而到刪除數據的時候居然沒有反應,折騰了好幾天也沒有任何進展。截圖如下: 前 ...
  • css: *{ margin: 0; padding: 0; /* 禁止用戶點選網頁內容 */ -webkit-touch-callout:none; -webkit-user-select:none; -khtml-user-select:none; -moz-user-select:none; ...
  • 內容:String Buffer/String Builder方法 + 兩個簡單練習是緩衝區,最後都會轉成字元串處理,有局限性###########方法添加元素: .append()插入元素: .insert(index,value)刪除元素: .delete(start,end)修改元素: .re ...
  • 從零開發項目概述 最近這一直在複習數據結構和演算法,也就是前面發出去的排序演算法 "八大基礎排序總結" , "Java實現單向鏈表" , "棧和隊列就是這麼簡單" , "十道簡單演算法題" 等等... 被虐得不要不要的,即使是非常簡單有時候繞半天,想不明白。 本來這篇博文是想留到我最後Java基礎複習完再 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...