A. 如何做爬蟲抓取數據
學習任何一門語言都是從入門,通過不間斷練習達到熟練水準,少數人最終能精通語言,成為執牛耳者,他們是金字塔的最頂層。
當你決定學Python爬蟲時,需要有一個清晰且短期內可實現的目標,比如通過學習找一份初級程序員工作。目標明確後,你需要知道企業對Python程序員的技能有哪些要求。
可能你會糾結是學Python2還是Python3,就像手裡同時有包子和饅頭,不知道先吃哪個,這種糾結完全就是徒增煩惱。
因為它們是同一種語言,只有少部分地方語法不兼容。Python3逐漸成為主流已是不爭事實,畢竟後者性能方面更佔有優勢,官方也在力推Python3。所以選Python3吧,最多花一天的時間能把Python2中特有的內容搞懂。
至於有哪些資源現在可以用,你可以積極參與到相關的技術圈子中去,嘗試去解答力所能及的新手問題,向圈子中的大牛們尋求幫助,善於總結自己所學到的東西,分享給更多的人。記住,你不是一個人在戰斗!
只看書不會進步,思考和實踐才有成長,自學編程是一個比較枯燥的過程,一定要堅持。
B. 如何爬取網站上的某一信息
兩類網站可以用不同的方法去爬取
一、開放API的網站
一個網站如果開放了API,那麼就可以直接GET到它的json數據。有三種方法可以判斷一個網站是否開放了API。
1、在站內尋找API入口;
2、用搜索引擎搜索「某網站API」;
3、抓包。有的網站雖然用到了ajax,但是通過抓包還是能夠獲取XHR里的json數據的(可用抓包工具抓包,也可以通過瀏覽器按F12抓包:F12-Network-F5刷新)。
二、不開放API的網站
1、如果網站是靜態頁面,那麼可以用requests庫發送請求,再通過HTML解析庫(lxml、parsel等)來解析響應的text;解析庫強烈推薦parsel,不僅語法和css選擇器類似,而且速度也挺快,Scrapy用的就是它。
2、如果網站是動態頁面,可以先用selenium來渲染JS,再用HTML解析庫來解析driver的page_source。
C. 爬蟲應用示例--puppeteer數據抓取的實現方法(續1)
本文介紹《 爬蟲應用示例--puppeteer數據抓取的實現方法 》中涉及到的puppeteer組件如何安裝,以及相關的坑。
Puppeteer 是一個node庫,內含了一個chrome瀏覽器,以及一組用來操縱Chrome的API。
相關資料:
1、github:https://github.com/puppeteer/puppeteer
2、中文資料:http://www.puppeteerjs.com/
3、API:https://chromedevtools.github.io/devtools-protocol/
安裝方式:
1、方式一完整安裝,包含chrome瀏覽器+API,npm i puppeteer【本文採用這種安裝方式,因為項目需要瀏覽器自動化的遠程數據自動化抓取】
2、方式二精簡安裝,只包含api,npm i puppeteer-core
說明:
1、以上語句執行一次如果出錯,則可以再執行1到2次試試
2、也可以嘗試用cnpm安裝試試
3、總之要執行後,出現以上結果則說明安裝成功
試過如下幾種安裝方式:
1、npm install puppeteer --save
2、npm install puppeteer --unsafe-perm=true --allow-root
3、npm install puppeteer --ignore-scripts
4、cnpm install puppeteer –save
5、cnpm install puppeteer --unsafe-perm=true --allow-root
其結果都是出現「Failed to set up Chromium r901912! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.」的錯誤,安裝失敗。
D. Python爬蟲常用的幾種數據提取方式
數據解析方式
- 正則
- xpath
- bs4
數據解析的原理:
標簽的定位
提取標簽中存儲的文本數據或者標簽屬性中存儲的數據
E. 如何用爬蟲爬取網頁上的數據
用爬蟲框架Scrapy, 三步
定義item類
開發spider類
開發pipeline
如果你想要更透的信息,你可以參考《瘋狂python講義》
F. 如何用python 爬蟲抓取金融數據
獲取數據是數據分析中必不可少的一部分,而網路爬蟲是是獲取數據的一個重要渠道之一。鑒於此,我拾起了Python這把利器,開啟了網路爬蟲之路。
本篇使用的版本為python3.5,意在抓取證券之星上當天所有A股數據。程序主要分為三個部分:網頁源碼的獲取、所需內容的提取、所得結果的整理。
一、網頁源碼的獲取
很多人喜歡用python爬蟲的原因之一就是它容易上手。只需以下幾行代碼既可抓取大部分網頁的源碼。
為了減少干擾,我先用正則表達式從整個頁面源碼中匹配出以上的主體部分,然後從主體部分中匹配出每隻股票的信息。代碼如下。
pattern=re.compile('<tbody[sS]*</tbody>')
body=re.findall(pattern,str(content)) #匹配<tbody和</tbody>之間的所有代碼pattern=re.compile('>(.*?)<')
stock_page=re.findall(pattern,body[0]) #匹配>和<之間的所有信息
其中compile方法為編譯匹配模式,findall方法用此匹配模式去匹配出所需信息,並以列表的方式返回。正則表達式的語法還挺多的,下面我只羅列所用到符號的含義。
語法 說明
. 匹配任意除換行符「 」外的字元
* 匹配前一個字元0次或無限次
? 匹配前一個字元0次或一次
s 空白字元:[<空格> fv]
S 非空白字元:[^s]
[...] 字元集,對應的位置可以是字元集中任意字元
(...) 被括起來的表達式將作為分組,裡面一般為我們所需提取的內容
正則表達式的語法挺多的,也許有大牛隻要一句正則表達式就可提取我想提取的內容。在提取股票主體部分代碼時發現有人用xpath表達式提取顯得更簡潔一些,看來頁面解析也有很長的一段路要走。
三、所得結果的整理
通過非貪婪模式(.*?)匹配>和<之間的所有數據,會匹配出一些空白字元出來,所以我們採用如下代碼把空白字元移除。
stock_last=stock_total[:] #stock_total:匹配出的股票數據for data in stock_total: #stock_last:整理後的股票數據
if data=='':
stock_last.remove('')
最後,我們可以列印幾列數據看下效果,代碼如下
print('代碼',' ','簡稱',' ',' ','最新價',' ','漲跌幅',' ','漲跌額',' ','5分鍾漲幅')for i in range(0,len(stock_last),13): #網頁總共有13列數據
print(stock_last[i],' ',stock_last[i+1],' ',' ',stock_last[i+2],' ',' ',stock_last[i+3],' ',' ',stock_last[i+4],' ',' ',stock_last[i+5])
G. 如何用Python爬取數據
方法/步驟
在做爬取數據之前,你需要下載安裝兩個東西,一個是urllib,另外一個是python-docx。
7
這個爬下來的是源代碼,如果還需要篩選的話需要自己去添加各種正則表達式。
H. 爬蟲技術之數據採集
將頁面用字元的形式分析(正則表達式取出)所有的url存入特點數據結構(如鏈表),然後分別下載鏈表中的url指示的頁面。再分析,再下載,不斷循環。那麼下載的頁面,就是網上的網頁。按一定的演算法索引起來,就是你的數據了。按url轉跳的順序可以分為深度和廣度優先。這是最簡單的一個爬蟲。只要防止無限的循環,(就是一個頁面的url中全部都指向自身,那麼爬蟲就不斷下載一個頁面了)網上的數據最終都可以下載下來。爬蟲就是這個思想。但真正的爬蟲都是有智能的取捨演算法,多隻爬蟲並行採集的復雜系統。
I. 怎麼用VBA或網路爬蟲程序抓取網站數據
VBA網抓常用方法
1、xmlhttp/winhttp法:
用xmlhttp/winhttp模擬向伺服器發送請求,接收伺服器返回的數據。
優點:效率高,基本無兼容性問題。
缺點:需要藉助如fiddler的工具來模擬http請求。
2、IE/webbrowser法:
創建IE控制項或webbrowser控制項,結合htmlfile對象的方法和屬性,模擬瀏覽器操作,獲取瀏覽器頁面的數據。
優點:這個方法可以模擬大部分的瀏覽器操作。所見即所得,瀏覽器能看到的數據就能用代碼獲取。
缺點:各種彈窗相當煩人,兼容性也確實是個很傷腦筋的問題。上傳文件在IE里根本無法實現。
3、QueryTables法:
因為它是excel自帶,所以勉強也算是一種方法。其實此法和xmlhttp類似,也是GET或POST方式發送請求,然後得到伺服器的response返回到單元格內。
優點:excel自帶,可以通過錄制宏得到代碼,處理table很方便
。代碼簡短,適合快速獲取一些存在於源代碼的table里的數據。
缺點:無法模擬referer等發包頭
也可以利用採集工具進行採集網頁端的數據,無需寫代碼。
J. 用爬蟲爬一些平台的數據 是怎麼爬
顯然不能直接儲存,你還得解析出自己需要的內容。 比如我爬取某新聞網今日的國內新聞,那麼我創建一個實體類,裡面有屬性:新聞標題,新聞時間,正文等等。解析出你需要的內容,封到實體裡面,然後在層直接save到資料庫即可 如果你爬下的是整.