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