Python3 爬蟲 相關庫安裝

安裝包百度雲分享syfe

1. 請求庫

reuqests

pip3 install requests

selenium

安裝2.48.0版本可支持PantomJS pip install selenium==2.48.0
最新版本已放棄Phantomjs。

ChromeDriver

谷歌瀏覽器驅動安裝
鏡像站地址

查看Chrome瀏覽器版本

這裏寫圖片描述
不知道拿哪個Driver版本,百度到chrome瀏覽器v65.0.3325.181此版本發佈日期3-21左右,找到如下版本:
這裏寫圖片描述
這裏寫圖片描述
解壓後放到Python安裝目錄下或另配環境變量到Path。

#代碼測試成功
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://item.jd.com/7652139.html")
time.sleep(5)
driver.close()

GeckoDriver

火狐瀏覽器驅動下載地址 好像沒有版本之分

#代碼測試成功
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://item.jd.com/7652139.html")
time.sleep(5)
driver.close()

PhantomJS

實現無界瀏覽器 官方下載地址
下載後解壓將phantomjs.exe放入python安裝路徑下的Scripts目錄或另配環境變量指向此文件所在路徑即可
PhantomJS 是一個無界面的、可腳本編程的WebKit瀏覽器引擎,它原生支持多種Web標準:DOM操作、CSS選擇器、JSON、Canvas以及SVG。
Selenium最新版本目前已經不支持PhantomJS。但Selenium2.48.0舊版本可實現運行時不彈出瀏覽器。
Phantomjs運行效率很高,支持各種參數配置,使用非常方便。

#以下代碼需配合selenium2.48.0 版本庫
from selenium import webdriver
browser =webdriver.PhantomJS()
browser.get('https://www.baidu.com')
baidu =browser.find_element_by_id('su').get_attribute('value')
print(baidu)
browser.close()

另一種實現無界瀏覽器爲 Selenium+Headless Chrome

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options =Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver=webdriver.Chrome(executable_path=’./chromedriver.exe’,chrome_options=chrome_options)
#chromedriver沒有配在環境變量path中時,第一個參數需手動指定驅動絕對路徑
driver.get('https://www.baidu.com')
baidu =driver.find_element_by_id('su').get_attribute('value')
print(baidu)
driver.close()

aiohttp

程序在請求等待中做一些其他的事情,Aiohttp是這樣一個提供異步Web服務的庫。
官方推薦兩個庫:字符編碼檢測庫cchardet,加速DNS解析庫 aiodns。
pip3 install cchardet aiodns
pip3 install aiodns

2.解析庫

tesserocr

Python OCR 識別庫

[1] tesseract 安裝Windows版軟件 獲取tessdata目錄 下載地址tesseract-ocr-setup-3.05.02-20180621.exe

[2] 安裝tesserocr庫 下載地址tesserocr-2.2.2-cp35-cp35m-win32.whl

pip install tesserocr-2.2.2-cp36-cp36m-win_amd64.whl

#驗證tesserocr庫安裝是否成功代碼
import tesserocr
from PIL import Image
imgg=Image.open("C:\\Users\\xxx\\Desktop\\image.png")
print(tesserocr.image_to_text(imgg))

這裏寫圖片描述

將以上圖片保存至電腦桌面並命名爲image.png

運行上述代碼後,輸出Python3WebSpider即安裝成功

若報錯 Failed to init API, possibly an invalid tessdata path: C:\mysoft\Python36

則:將D:\Program Files (x86)\Tesseract-OCR (tesseract的安裝文件夾)下的tessdata目錄複製到Python安裝目錄中即可。

lxml

Beautiful Soup

pyquery

默認安裝即可
pip3 install lxml
pip3 install beautifulsoup
pip3 install pyquery

3.數據庫

mysql

https://blog.csdn.net/since_1904/article/details/70233403

mongoDB

mongoDB 是一個基於分佈式文件存儲的開源數據庫系統,其內容存儲形式類似JSON對象,它的字段值可以包含其他文檔、數組以及文檔數組,相當靈活。
https://www.cnblogs.com/tim100/p/6721415.html

可視化工具Robo3T
https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.0.1-signed.msi

創建最高權限用戶
這裏寫圖片描述

Redis

Redis是一個基於內存的高效的非關係型數據庫。
https://github.com/MSOpenTech/redis/releases

可視化工具 RedisDesktop Manager
https://redisdesktop.com/download
https://github.com/uglide/RedisDesktopManager/releases

4.存儲庫

Pymysql

pip install pymysql

PyMongo

pip install pymongo

Redis-py

pip install redis

RedisDump

RedisDump 是一個用於Redis數據導入/導出的工具,要安裝RedisDump前先安裝Rudy。
在Ruby裝完後 命令行 gem install redis-dump

Ruby下載地址

安裝windows版的Ruby最好默認安裝不要更換安裝目錄以防
gem install redis-dump 安裝RedisDump時報錯

5.Web庫

Flask

pip3 install flask

安裝Flask後用以下測試是否可正常運行Flask

from flask import Flask
app=Flask(__name__)

@app.route("/")
def hell0():
    return "Hello World!"
if __name__ =="__main__":
    app.run()

報錯如下:

UnsupportedOperation                      Traceback (most recent call last)
<ipython-input-1-d8132276117c> in <module>()
      6     return "Hello World!"
      7 if __name__ =="__main__":
----> 8     app.run()

c:\mysoft\python36\lib\site-packages\flask\app.py in run(self, host, port, debug, load_dotenv, **options)
    936         options.setdefault('threaded', True)
    937 
--> 938         cli.show_server_banner(self.env, self.debug, self.name, False)
    939 
    940         from werkzeug.serving import run_simple

c:\mysoft\python36\lib\site-packages\flask\cli.py in show_server_banner(env, debug, app_import_path, eager_loading)
    627             message += ' (lazy loading)'
    628 
--> 629         click.echo(message)
    630 
    631     click.echo(' * Environment: {0}'.format(env))

c:\mysoft\python36\lib\site-packages\click\utils.py in echo(message, file, nl, err, color)
    257 
    258     if message:
--> 259         file.write(message)
    260     file.flush()
    261 

UnsupportedOperation: not writable

解決辦法:
You need to edit the echo function definition at ../site-packages/click/utils.py the default value for the file parameter must be sys.stdout instead of None.
Do the same for the secho function definition at ../site-packages/click/termui.py

即[Python安裝目錄\Lib\site-packages\click]目錄下有兩份文件需要修改:

這裏寫圖片描述
這裏寫圖片描述

改完後測試如下,正常顯示Hello World!
這裏寫圖片描述
這裏寫圖片描述

Tornado

一個支持異步的Web框架,通過使用非阻塞I/O流,它可以支撐成千上萬的開放連接,效率非常高。

pip3 install tornado

import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello,world")
def make_app():
    return tornado.web.Application([(r"/",MainHandler),])
if __name__ =="__main__":
    tornado.ioloop.IOLoop.current().stop()
    app=make_app()
    app.listen(8888)    
    tornado.ioloop.IOLoop.current().start()

6.App爬取相關庫

Charles

網絡抓包工具,相比Fiddler功能更強大,跨平臺。

mitmproxy

pip3 install mitmproxy
https://github.com/mitmproxy/mitmproxy/releases

Appium

移動端自動化測試工具,模擬點擊、滑動、輸入等操作
appium-desktop-setup-1.6.2.exe

使用Appium還需下載Android SDK,配置SDK環境變量

ANDROID_HOME:sdk路徑
Path:增加sdk路徑下tools和platform-tools文件夾

7.爬蟲框架

pyspider

下載安裝PyCurl庫pycurl-7.43.1-cp36-cp36m-win_amd64.whl
之後安裝pyspider
pip3 install pyspider
可能報錯:
這裏寫圖片描述

不知咋地,再輸一次pip3 install pyspider 安裝成功
這裏寫圖片描述
這裏寫圖片描述

驗證安裝成功 pyspider all
這裏寫圖片描述

Scrapy

一個十分強大的爬蟲框架,依賴的基本庫有Twisted 14.0、lxml3.4 和pyOpenSSL 0.14.不同平臺所依賴的庫各不相同。使用Anaconda安裝簡單粗暴。

先安裝Anaconda
之後打開 Anaconda Prompt
輸入conda install Scrapy即可

Scrapy-Redis
Scrapy的分佈式擴展塊,可以方便地實現Scrapy分佈式爬蟲的搭建。

Scrapy-Redis
依賴於Twisted庫
pip3 install twisted
pip3 install scrapy-redis

Scrapy-Splash
pip3 install scrapy-splash

9.部署安裝庫

Docker

Docker 是一種容器技術,可以將應用和環境等進行打包,形成一個獨立的、類似於IOS的App形式的應用。這個應用可以直接被分發到任意一個支持Docker的環境中,通過簡單的命令即可啓動運行。
Window10 64位版本的安裝地址
其他Windows版本安裝Docker Toolbox

Scrapyd

Scrapyd是一個用於部署和運行Scrapy項目的工具,可將寫好的Scrapy項目上傳至雲主機並通過API來控制其運行。
pip3 install scrapyd

Scrapyd-Client

pip3 install scrapyd-client

Scrapyd API

獲取當前主機的Scrapy任務運行狀況
pip install python-scrapyd-api

Scrapyrt

爲Scrapy提供一個調度的HTTP接口,這樣可以請求一個HTTP接口來調度Scrapy任務。Scrapyrt比Scrapyd更輕量,但不支持分佈式多任務。
pip3 install scrapyrt

Gerapy

一個Scrapy分佈式管理模塊

pip3 install gerapy

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