作者介紹:timber ,在一家電子商務(外貿(mào))公司任職運維,平常工作時我覺得敲命令的樣子也很帥 ---Python,Changed me! 個人博客地址: https://blog.csdn.net/weixin_42946604 本文首發(fā)于: https://blog.csdn.net/weixin_42946604 前言 我這里用到了的python+selenium來抓取鏈家房數(shù)據(jù),因爲很多時候分析參數(shù),頭疼啊,能分析的還好。有些網(wǎng)頁就很變態(tài)哦,參數(shù)都是經(jīng)過加密的。 selenium自動化優(yōu)點(我去找了一下度娘…哈哈),完全可以模擬人工操作網(wǎng)頁,而且相對其他爬蟲不用寫請求頭(偷懶),例如直接request的,聽說更容易被封(403),我只是聽說! 最后希望更大家互勉互力,一同進步!現(xiàn)在跟大家分享一下python selenium的小知識… 整體流程 1、安裝selenium 命令行:pip install selenium 敲回車 2、下載chromedriver插件,對應自己的版本,鏈接在此: http://chromedriver.storage./index.html 直接放在Python的Scripts目錄下就可以不能配置變量了,而且也不用聲明路徑 (后面會說到) 3、安裝pyquery 一樣的用到pip安裝 敲回車 命令行:pip install pyquery 4、安裝pymysql 命令行:pip install pymysql 同上 5、以上安裝完成后,開始我們的騷操作了。 網(wǎng)頁分析 我們不用聲明請求頭還有分析一些參數(shù)了,只要我們拿到URL,指哪爬哪! 那這些數(shù)據(jù)的提取正題就來了! 發(fā)現(xiàn)每個小區(qū)的售房信息都在ul下的li標簽里面。直接上代碼 第一步拿到html結(jié)構(gòu),然后用pyquery解析遍歷li標簽,我使用了items()方法 提取小區(qū)名稱,找到a標簽的class 提取房類的文本,span標簽下面 其他的TEXT文本都是這樣的方法提取 我們這里判斷一下ul的class,防止有時候網(wǎng)絡加載的問題,導致發(fā)生錯誤。 模擬滾動,點擊下一步操作 我們沒跳轉(zhuǎn)一頁就滾動一下滾動條,這個有好處的哦有時候很多異步加載的,例如一下ajax加載的就是很好的例子了,查看評論的時候很多是這樣的!我們來看一下 這也是個方法,根據(jù)個人不同來定義,我這里以800來滾動。 代碼實現(xiàn) 直接上圖 一些其他的小動作,可以自己添加哦! 數(shù)據(jù)存儲 我這里用mysql存放數(shù)據(jù),上圖 我提前把數(shù)據(jù)表建好了的,表名為lianjie_data,數(shù)據(jù)庫名是lianjie,這里根據(jù)個人情況。 數(shù)據(jù)展示 是不是完完全全模擬人工操作呢,其實我沒加太多動作 嘻嘻 千山萬水總是情,點個「好看」行不行。 ◆ ◆ ◆ ◆ ◆ |
|