❶ python爬蟲用的哪些庫
Python爬蟲,全稱Python網路爬蟲,是一種按照一定的規則,自動地抓取萬維網信息的程序或腳本,主要用於抓取證券交易數據、天氣數據、網站用戶數據和圖片數據等,Python為支持網路爬蟲正常功能實現,內置了大量的庫,主要有幾種類型。下面本篇文章就來給大家介紹。
一、Python爬蟲網路庫
Python爬蟲網路庫主要包括:urllib、requests、grab、pycurl、urllib3、httplib2、RoboBrowser、MechanicalSoup、mechanize、socket、Unirest for Python、hyper、PySocks、treq以及aiohttp等。
二、Python網路爬蟲框架
Python網路爬蟲框架主要包括:grab、scrapy、pyspider、cola、portia、restkit以及demiurge等。
三、HTML/XML解析器?
●lxml:C語言編寫高效HTML/ XML處理庫。支持XPath。
●cssselect:解析DOM樹和CSS選擇器。
●pyquery:解析DOM樹和jQuery選擇器。
●BeautifulSoup:低效HTML/ XML處理庫,純Python實現。
●html5lib:根據WHATWG規范生成HTML/ XML文檔的DOM。該規范被用在現在所有的瀏覽器上。
●feedparser:解析RSS/ATOM feeds。
●MarkupSafe:為XML/HTML/XHTML提供了安全轉義的字元串。
●xmltodict:一個可以讓你在處理XML時感覺像在處理JSON一樣的Python模塊。
●xhtml2pdf:將HTML/CSS轉換為PDF。
●untangle:輕松實現將XML文件轉換為Python對象。
四、文本處理
用於解析和操作簡單文本的庫。
●difflib:(Python標准庫)幫助進行差異化比較。
●Levenshtein:快速計算Levenshtein距離和字元串相似度。
●fuzzywuzzy:模糊字元串匹配。
●esmre:正則表達式加速器。
●ftfy:自動整理Unicode文本,減少碎片化。
五、特定格式文件處理
解析和處理特定文本格式的庫。
●tablib:一個把數據導出為XLS、CSV、JSON、YAML等格式的模塊。
●textract:從各種文件中提取文本,比如 Word、PowerPoint、PDF等。
●messytables:解析混亂的表格數據的工具。
●rows:一個常用數據介面,支持的格式很多(目前支持CSV,HTML,XLS,TXT:將來還會提供更多!)。
六、自然語言處理
●NLTK:編寫Python程序來處理人類語言數據的最好平台;
●Pattern:Python的網路挖掘模塊;
●TextBlob:為深入自然語言處理任務提供了一致的API。是基於NLTK以及Pattern的巨人之肩上發展的;
●jieba:中文分詞工具;
●SnowNLP:中文文本處理庫;
●loso:另一個中文分詞庫;
●genius:基於條件隨機域的中文分詞;
●langid.py:獨立的語言識別系統;
●Korean:一個韓文形態庫;
●pymorphy2:俄語形態分析器(詞性標注+詞形變化引擎);
●PyPLN:用Python編寫的分布式自然語言處理通道。這個項目的目標是創建一種簡單的方法使用NLTK通過網路介面處理大語言庫。
七、瀏覽器自動化與模擬
●selenium:自動化真正的瀏覽器(Chrome瀏覽器,火狐瀏覽器,Opera瀏覽器,IE瀏覽器);
●Ghost.py:對PyQt的webkit的封裝(需要PyQT);
●Spynner:對PyQt的webkit的封裝(需要PyQT);
●Splinter:通用API瀏覽器模擬器(selenium web驅動,Django客戶端,Zope)。
八、多重處理
●threading:Python標准庫的線程運行。對於I/O密集型任務很有效。對於CPU綁定的任務沒用,因為python GIL;
●multiprocessing:標準的Python庫運行多進程;
●celery:基於分布式消息傳遞的非同步任務隊列/作業隊列;
●concurrent-futures:concurrent-futures 模塊為調用非同步執行提供了一個高層次的介面。
九、非同步網路編程庫
●asyncio:(在Python 3.4 +版本以上的 Python標准庫)非同步I/O,時間循環,協同程序和任務;
●Twisted:基於事件驅動的網路引擎框架;
●Tornado:一個網路框架和非同步網路庫;
●pulsar:Python事件驅動的並發框架;
●diesel:Python的基於綠色事件的I/O框架;
●gevent:一個使用greenlet 的基於協程的Python網路庫;
●eventlet:有WSGI支持的非同步框架;
●Tomorrow:非同步代碼的奇妙的修飾語法。
十、隊列
●celery:基於分布式消息傳遞的非同步任務隊列/作業隊列;
●huey:小型多線程任務隊列;
●RQ:基於Redis的輕量級任務隊列管理器;
●simpleq:一個簡單的,可無限擴展,基於Amazon SQS的隊列;
●python-gearman:Gearman的Python API。
十一、雲計算
picloud:雲端執行Python代碼;
dominoup.com:雲端執行R,Python和matlab代碼。
十二、電子郵件
●flanker:電子郵件地址和Mime解析庫;
●Talon:Mailgun庫用於提取消息的報價和簽名。
十三、網址和網路地址操作
●furl:一個小的Python庫,使得操縱URL簡單化;
●purl:一個簡單的不可改變的URL以及一個干凈的用於調試和操作的API;
●urllib.parse:用於打破統一資源定位器(URL)的字元串在組件之間的隔斷,為了結合組件到一個URL字元串,並將「相對URL」轉化為一個絕對URL,稱之為「基本URL」;
●tldextract:從URL的注冊域和子域中准確分離TLD,使用公共後綴列表;
●etaddr:用於顯示和操縱網路地址的Python庫。
十四、網頁內容提取
●ewspaper:用Python進行新聞提取、文章提取和內容策展;
●html2text:將HTML轉為Markdown格式文本;
●python-goose:HTML內容、文章提取器;
●lassie:人性化的網頁內容檢索工具;
●micawber:一個從網址中提取豐富內容的小庫;
●sumy:一個自動匯總文本文件和HTML網頁的模塊;
●Haul:一個可擴展的圖像爬蟲;
●python-readability:arc90 readability工具的快速Python介面;
●scrapely:從HTML網頁中提取結構化數據的庫;
●youtube-dl:一個從YouTube下載視頻的小命令行程序;
●you-get:Python3的YouTube、優酷/ Niconico視頻下載器;
●WikiTeam:下載和保存wikis的工具。
十五、WebSocket
●Crossbar:開源的應用消息傳遞路由器;
●AutobahnPython:提供了WebSocket協議和WAMP協議的Python實現並且開源;
●WebSocket-for-Python:Python 2和3以及PyPy的WebSocket客戶端和伺服器庫。
十六、DNS解析
●dnsyo:在全球超過1500個的DNS伺服器上檢查你的DNS;
●pycares:c-ares的介面。
十七、計算機視覺
●OpenCV:開源計算機視覺庫;
●SimpleCV:用於照相機、圖像處理、特徵提取、格式轉換的簡介,可讀性強的介面;
●mahotas:快速計算機圖像處理演算法,完全基於 numpy 的數組作為它的數據類型。
十八、代理伺服器
●shadowsocks:一個快速隧道代理,可幫你穿透防火牆;
●tproxy:tproxy是一個簡單的TCP路由代理,基於Gevent,用Python進行配置。
十九、其他Python工具列表
●awesome-python
●pycrumbs
●python-github-projects
●python_reference
●pythonidae
❷ python爬蟲怎麼獲取到的網站的所有url
首先我們可以先獲取要下載圖片的整個頁面信息。
getjpg.py
#coding=utf-8
import urllib
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
print html
Urllib 模塊提供了讀取web頁面數據的介面,我們可以像讀取本地文件一樣讀取www和ftp上的數據。首先,我們定義了一個getHtml()函數:
urllib.urlopen()方法用於打開一個URL地址。
read()方法用於讀取URL上的數據,向getHtml()函數傳遞一個網址,並把整個頁面下載下來。執行程序就會把整個網頁列印輸出。
❸ python 如何抓取動態頁面內容
下面開始說一下本文抓取動態頁面數據的相關工具和庫:
1. python 2.7
2. pyqt
3. spynner (在安裝過程中,其他的一些依賴庫也會自動上網下載安裝)
4. BeautifulSoup
5. ide工具是pycharm(當然這個只是個人喜好,也可以使用其他的ide工具)
以上幾個工具都可以網路找到,python現在出了3.x版本的,但是由於眾多第三方庫或架構都沒有兼容,並且後續要使用到的爬蟲框架scrapy也是沒有支持3.x版本,因此還是建議使用2.7版本吧。
spynner和BeautifulSoup下載後,都可以cd到解壓出來的目錄,然後使用python setup.py install來完成安裝,需要注意的是spynner依賴pyqt,所以一定要安裝pyqt,否則無法使用spynner。
下面使用一個具體是例子來說明一下spynner和BeautifulSoup的使用,我們就以爬取京東頁面上的一些產品數據來說明如何爬取動態頁面數據(當然,如果我們過於頻繁的爬京東,估計還是有可能被京東將我們ip拉黑的)。
❹ python爬蟲有幾種方式我知道可以用webdriver,urllib,requests這幾種方法。
要全部羅列出來還真挺困難,很多非主流的模塊也可以做爬蟲。
大致分成3類:
1、類似urllib,requests,需要自行構造請求,組織url關聯,抓取到的數據也要自行考慮如何保存。
2、類似selenium,模擬瀏覽器,大多用於爬取一些動態的網頁內容,需要模擬點擊,下拉等操作等。
3、類似scrapy 爬蟲框架,相對來說更簡單,進行一些配置,組織爬取的邏輯即可。
❺ python爬蟲如何分析一個將要爬取的網站
爬取網頁數據,需要一些工具,比如requests,正則表達式,bs4等,解析網頁首推bs4啊,可以通過標簽和節點抓取扒拍數據。
正巧簡悶,我最近發布了一篇文章就是抓取網頁數據分析的,有完整的抓取步驟,你可以看一下?不好意思給自己打了一下廣春咐羨告?
❻ 姣曚笟鐢熷繀鐪婸ython鐖鉶涓婃墜鎶宸
Python蹇閫熶笂鎵嬬殑7澶ф妧宸
Python蹇閫熶笂鎵嬬埇鉶鐨7澶ф妧宸
1銆佸熀鏈鎶撳彇緗戦〉
get鏂規硶
post鏂規硶
2銆佷嬌鐢ㄤ唬鐞咺P
鍦ㄥ紑鍙戠埇鉶榪囩▼涓緇忓父浼氶亣鍒癐P琚灝佹帀鐨勬儏鍐碉紝榪欐椂灝遍渶瑕佺敤鍒
浠g悊IP錛
鍦╱rllib 2鍖呬腑鏈塒roxy Handler綾伙紝 閫氳繃姝ょ被鍙浠ヨ劇疆浠g悊
璁塊棶緗戦〉錛屽備笅浠g爜鐗囨碉細
3銆丆ookies澶勭悊
cookies鏄鏌愪簺緗戠珯涓轟簡杈ㄥ埆鐢ㄦ埛韜浠姐佽繘琛宻ession璺熻釜鑰
鍌ㄥ瓨鍦ㄧ敤鎴鋒湰鍦扮粓絝涓婄殑鏁版嵁(閫氬父緇忚繃鍔犲瘑) 錛 python鎻愪緵浜
cookie lib妯″潡鐢ㄤ簬澶勭悊cookies錛 cookie lib妯″潡鐨勪富瑕佷綔
鐢ㄦ槸鎻愪緵鍙瀛樺偍cookie鐨勫硅薄錛 浠ヤ究浜庝笌urllib 2妯″潡閰嶅悎浣
鐢ㄦ潵璁塊棶Internet璧勬簮銆
浠g爜鐗囨碉細
鍏抽敭鍦ㄤ簬Cookie Jar() 錛 瀹冪敤浜庣$悊HTTP cookie鍊箋佸瓨鍌
HTTP璇鋒眰鐢熸垚鐨刢ookie銆佸悜浼犲嚭鐨凥TTP璇鋒眰娣誨姞cookie
鐨勫硅薄銆傛暣涓猚ookie閮藉瓨鍌ㄥ湪鍐呭瓨涓錛 瀵笴ookie Jar瀹炰緥榪
琛屽瀮鍦懼洖鏀跺悗cookie涔熷皢涓㈠け錛 鎵鏈夎繃紼嬮兘涓嶉渶瑕佸崟鐙鍘繪搷浣
鎵嬪姩娣誨姞cookie錛
4銆佷吉瑁呮垚嫻忚堝櫒
鏌愪簺緗戠珯鍙嶆劅鐖鉶鐨勫埌璁匡紝浜庢槸瀵圭埇鉶涓寰嬫嫆緇濊鋒眰銆傛墍浠ョ敤
urllib 2鐩存帴璁塊棶緗戠珯緇忓父浼氬嚭鐜癏TTP Error 403錛
Forbidden鐨勬儏鍐點
瀵規湁浜沨eader瑕佺壒鍒鐣欐剰錛 Server絝浼氶拡瀵硅繖浜沨eader
鍋氭鏌ワ細
1.User-Agent鏈変簺Server鎴朠roxy浼氭鏌ヨュ礆紝 鐢ㄦ潵鍒
鏂鏄鍚︽槸嫻忚堝櫒鍙戣搗鐨凴equest銆
2.Content-Type鍦ㄤ嬌鐢≧EST鎺ュ彛鏃訛紝 Server浼氭鏌ヨ
鍊礆紝 鐢ㄦ潵紜瀹欻TTP Body涓鐨勫唴瀹硅ユ庢牱瑙f瀽銆
榪欐椂鍙浠ラ氳繃淇鏀筯ttp鍖呬腑鐨刪eader鏉ュ疄鐜幫紝 浠g爜鐗囨靛備笅
5銆侀獙璇佺爜鐨勫勭悊
瀵逛簬涓浜涚畝鍗曠殑楠岃瘉鐮侊紝鍙浠ヨ繘琛岀畝鍗曠殑璇嗗埆銆傛垜浠鍙榪涜岃繃涓
浜涚畝鍗曠殑楠岃瘉鐮佽瘑鍒錛屼絾鏄鏈変簺鍙嶄漢綾葷殑楠岃瘉鐮侊紝姣斿12306
錛屽彲浠ラ氳繃鎵撶爜騫沖彴榪涜屼漢宸ユ墦鐮侊紝褰撶劧榪欐槸瑕佷粯璐圭殑銆
6銆乬zip鍘嬬緝
鏈夋病鏈夐亣鍒拌繃鏌愪簺緗戦〉錛屼笉璁烘庝箞杞鐮侀兘鏄涓鍥涔辯爜銆傚搱鍝堬紝閭
璇存槑浣犺繕涓嶇煡閬撹稿歸eb鏈嶅姟鍏鋒湁鍙戦佸帇緙╂暟鎹鐨勮兘鍔涳紝 榪欏彲
浠ュ皢緗戠粶綰胯礬涓婁紶杈撶殑澶ч噺鏁版嵁娑堝噺60%浠ヤ笂銆傝繖灝ゅ叾閫傜敤浜
XML web鏈嶅姟錛 鍥犱負XML鏁版嵁鐨勫帇緙╃巼鍙浠ュ緢楂樸
浣嗘槸涓鑸鏈嶅姟鍣ㄤ笉浼氫負浣犲彂閫佸帇緙╂暟鎹錛岄櫎闈炰綘鍛婅瘔鏈嶅姟鍣ㄤ綘鍙
浠ュ勭悊鍘嬬緝鏁版嵁銆
浜庢槸闇瑕佽繖鏍蜂慨鏀逛唬鐮侊細
榪欐槸鍏抽敭錛氬壋寤篟equest瀵硅薄錛 娣誨姞涓涓獮ccept-
encoding澶翠俊鎮鍛婅瘔鏈嶅姟鍣ㄤ綘鑳芥帴鍙梘zip鍘嬬緝鏁版嵁銆
鐒跺悗灝辨槸瑙e帇緙╂暟鎹錛
7銆佸氱嚎紼嬪苟鍙戞姄鍙
鍗曠嚎紼嬪お鎱㈢殑璇濓紝灝遍渶瑕佸氱嚎紼嬩簡錛岃繖閲岀粰涓綆鍗曠殑綰跨▼奼犳ā鏉
榪欎釜紼嬪簭鍙鏄綆鍗曞湴鎵撳嵃浜1-10錛屼絾鏄鍙浠ョ湅鍑烘槸騫跺彂鐨勩
鉶界劧璇碢ython鐨勫氱嚎紼嬪緢楦¤倠錛 浣嗘槸瀵逛簬鐖鉶榪欑嶇綉緇滈戠箒鍨
錛岃繕鏄鑳戒竴瀹氱▼搴︽彁楂樻晥鐜囩殑銆