最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区

xpath

xpath

Python手動(dòng)搜索關(guān)鍵詞采集信息—以易迅為例!

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 640 次瀏覽 ? 2020-08-03 10:55 ? 來(lái)自相關(guān)話(huà)題

  Python數據剖析之numpy字段全解析一、操作步驟
  如果網(wǎng)頁(yè)上有搜索框,但是搜索結果頁(yè)面沒(méi)有獨立網(wǎng)址,想要采集搜索結果,直接做規則是采集不到的,要先做連續動(dòng)作(輸入+點(diǎn)擊)來(lái)實(shí)現手動(dòng)輸入關(guān)鍵詞并搜索,然后才會(huì )采集數據。下面用易迅搜索為例,演示手動(dòng)搜索采集,操作步驟如下:
  Python資源共享群:626017123
  
  二、案例規則+操作步驟
  注意:本案例易迅搜索是有獨立網(wǎng)址的,對于具有獨立網(wǎng)址的頁(yè)面,最簡(jiǎn)單的方式就是構造出每位關(guān)鍵詞的搜索網(wǎng)址,然后把線(xiàn)索網(wǎng)址導出到規則里,就可以批量采集,而不是設置連續動(dòng)作
  第一步:定義第一級規則
  
  1.1打開(kāi)集搜客網(wǎng)絡(luò )爬蟲(chóng),輸入網(wǎng)址并Enter,加載出網(wǎng)頁(yè)后再點(diǎn)擊“定義規則”按鈕,看到一個(gè)浮窗顯示下來(lái),稱(chēng)為工作臺,在前面定義規則;
  注意:這里的截圖和文字說(shuō)明都是集搜客網(wǎng)絡(luò )爬蟲(chóng)版本,如果您安裝的是傲游插件版,那么就沒(méi)有“定義規則”按鈕,而是應當運行MS謀數臺
  1.2在工作臺北輸入一級規則的主題名,再點(diǎn)擊“查重”,提示“該名可以使用”或“該名已被占用,可編輯:是”,就可以使用這個(gè)主題名,否則請重命名。
  
  1.3本級規則主要是設置連續動(dòng)作,所以,整理箱可以隨便抓取一個(gè)信息,用來(lái)給爬蟲(chóng)判定是否執行采集。雙擊網(wǎng)頁(yè)上的信息,輸入標簽名,并打勾確認,再勾上關(guān)鍵內容,首次標明還要輸入整理箱的名子,然后就完成標明映射了。
  Tips:為了能確切定位網(wǎng)頁(yè)信息,點(diǎn)擊定義規則會(huì )把整個(gè)網(wǎng)頁(yè)定格住,不能跳轉網(wǎng)頁(yè)鏈接,再次點(diǎn)擊定義規則,才會(huì )恢復回普通的網(wǎng)頁(yè)模式。
  第二步:定義連續動(dòng)作
  點(diǎn)擊工作臺的“連續動(dòng)作”頁(yè)簽,點(diǎn)擊新建按鍵構建一個(gè)新動(dòng)作,每個(gè)動(dòng)作的設置方式都是一樣,基本操作如下:
  
  2.1 ,輸入目標主題名
  這里的目標主題名是填第二級主題名,點(diǎn)擊“誰(shuí)在用”查看目標主題名是否可用,如果早已被占用,換一個(gè)主題名就行
  2.2, 創(chuàng )建第一個(gè)動(dòng)作:輸入
  新建一個(gè)動(dòng)作,并選擇動(dòng)作類(lèi)型為輸入。
  
  2.2.1,填寫(xiě)定位表達式
  首先鍵盤(pán)單擊輸入框,定位輸入框的節點(diǎn),然后點(diǎn)擊“自動(dòng)生成XPath”按鈕,可以選擇“偏好id”或者“偏好class”,就可以得到輸入框的xpath表達式,再點(diǎn)擊“搜索”按鈕,檢查一下這個(gè)xpath是否能惟一定位到輸入框,沒(méi)有問(wèn)題就把xpath復制到定位表達式方框里。
  注意:定位表達式里的xpath是要鎖定動(dòng)作對象的整個(gè)有效操作范圍,具體就是指鍵盤(pán)就能點(diǎn)擊或輸入成功的網(wǎng)頁(yè)模塊,不要定位到最底層的text()節點(diǎn)。
  2.2.2,輸入關(guān)鍵詞
  輸入關(guān)鍵詞填寫(xiě)你想搜索的關(guān)鍵詞,可以輸入一個(gè)關(guān)鍵詞,也可以輸入多個(gè)關(guān)鍵詞,輸入多個(gè)關(guān)鍵詞要用雙分號;;將每位關(guān)鍵詞隔開(kāi),免費版只支持5個(gè)以?xún)鹊年P(guān)鍵詞,旗艦版可以使用連發(fā)彈倉功能,支持1萬(wàn)以?xún)鹊年P(guān)鍵詞
  2.2.3,輸入動(dòng)作名稱(chēng)
  告訴自己這一步動(dòng)作是拿來(lái)干嘛的,方便之后更改。
  2.3,創(chuàng )建第二個(gè)動(dòng)作:點(diǎn)擊
  
  參考2.2的操作,創(chuàng )建第二個(gè)動(dòng)作,選擇類(lèi)型為點(diǎn)擊,定位到搜索按鍵,然后手動(dòng)生成xpath,檢驗是否鎖定到惟一節點(diǎn),沒(méi)問(wèn)題的話(huà)填到定位表達式里就行了。
  2.4,存規則
  點(diǎn)擊“存規則”按鈕保存已完成的第一級規則
  第三步:定義第二級規則
  3.1,新建規則
  創(chuàng )建第二級規則,點(diǎn)擊“定義規則”恢復到普通網(wǎng)頁(yè)模式,輸入關(guān)鍵詞搜索出結果后,再次點(diǎn)擊“定義規則”切換到做規則模式,點(diǎn)擊左上角“規則”菜單->“新建”,輸入主題名,這里的主題名就是第一級規則的連續動(dòng)作里填寫(xiě)的目標主題名。
  3.2,標注想要采集的信息
  
  3.2.1,標注網(wǎng)頁(yè)上想要采集的信息,這里是對商品名稱(chēng)和價(jià)位做標明,因為標明只對文本信息有效,商品詳情的鏈接是屬性節點(diǎn)@href,所以,不能對鏈接做這樣的直觀(guān)標明,而要做內容映射,具體看下邊的操作。
  3.2.2,點(diǎn)擊商品名稱(chēng),下面的DOM節點(diǎn)定位到A標簽,展開(kāi)A標簽下的attributes節點(diǎn),就可以找到代表網(wǎng)址的@href節點(diǎn),右擊節點(diǎn),選擇“新建抓取內容“,輸入一個(gè)名子,一般給這個(gè)抓取內容起一個(gè)和地址有關(guān)的名子,比如“下級網(wǎng)址“,或者”下級鏈接“等等。然后在工作臺上,看到這個(gè)抓取內容有了。如果還要步入商品詳情頁(yè)采集,就要對著(zhù)這個(gè)抓取內容勾選下級線(xiàn)索關(guān)鍵詞自動(dòng)采集,做層級抓取。
  3.2.3,設置“關(guān)鍵內容”選項,這樣爬蟲(chóng)就能判別出采集規則是否合適。在整理箱里選一個(gè)網(wǎng)頁(yè)上必然能采到的標簽關(guān)鍵詞自動(dòng)采集,勾上“關(guān)鍵內容”。這里選擇的是“名稱(chēng)”做為“關(guān)鍵內容”。
  3.2.4,前面只對一個(gè)商品做標明,也才能得到一個(gè)商品信息,如果想把一整頁(yè)上每一個(gè)商品都采集下來(lái),可以做樣例復制,不懂的請參考基礎教程《采集列表數據》
  3.3,設置翻頁(yè)路線(xiàn)
  
  在爬蟲(chóng)路線(xiàn)設置翻頁(yè),這里用的是記號線(xiàn)索,不懂的請參考基礎教程《設置翻頁(yè)采集》
  3.4,存規則
  點(diǎn)擊“測試”,檢查信息完整性。不完整的話(huà),重新標明就可以覆蓋之前的內容。檢查沒(méi)問(wèn)題后點(diǎn)擊“存規則”。
  第四步:抓數據
  
  4.1,連續動(dòng)作是連續執行的,所以只要運行第一級主題,第二級主題不用運行。打開(kāi)DS打數機,搜索出第一級主題名,點(diǎn)擊“單搜”或“集搜”,此時(shí)可以看見(jiàn)瀏覽器窗口里會(huì )手動(dòng)輸入關(guān)鍵詞而且搜索,然后調用第二級主題手動(dòng)采集搜索結果。
  4.2,第一級主題沒(méi)采到有意義的信息,所以,我們只看第二級主題的文件夾,就能看見(jiàn)采集的搜索結果數據,并且搜索的關(guān)鍵詞是默認記錄在xml文件的actionvalue數組中,這樣才能一一對應上去。 查看全部

  Python數據剖析之numpy字段全解析一、操作步驟
  如果網(wǎng)頁(yè)上有搜索框,但是搜索結果頁(yè)面沒(méi)有獨立網(wǎng)址,想要采集搜索結果,直接做規則是采集不到的,要先做連續動(dòng)作(輸入+點(diǎn)擊)來(lái)實(shí)現手動(dòng)輸入關(guān)鍵詞并搜索,然后才會(huì )采集數據。下面用易迅搜索為例,演示手動(dòng)搜索采集,操作步驟如下:
  Python資源共享群:626017123
  
  二、案例規則+操作步驟
  注意:本案例易迅搜索是有獨立網(wǎng)址的,對于具有獨立網(wǎng)址的頁(yè)面,最簡(jiǎn)單的方式就是構造出每位關(guān)鍵詞的搜索網(wǎng)址,然后把線(xiàn)索網(wǎng)址導出到規則里,就可以批量采集,而不是設置連續動(dòng)作
  第一步:定義第一級規則
  
  1.1打開(kāi)集搜客網(wǎng)絡(luò )爬蟲(chóng),輸入網(wǎng)址并Enter,加載出網(wǎng)頁(yè)后再點(diǎn)擊“定義規則”按鈕,看到一個(gè)浮窗顯示下來(lái),稱(chēng)為工作臺,在前面定義規則;
  注意:這里的截圖和文字說(shuō)明都是集搜客網(wǎng)絡(luò )爬蟲(chóng)版本,如果您安裝的是傲游插件版,那么就沒(méi)有“定義規則”按鈕,而是應當運行MS謀數臺
  1.2在工作臺北輸入一級規則的主題名,再點(diǎn)擊“查重”,提示“該名可以使用”或“該名已被占用,可編輯:是”,就可以使用這個(gè)主題名,否則請重命名。
  
  1.3本級規則主要是設置連續動(dòng)作,所以,整理箱可以隨便抓取一個(gè)信息,用來(lái)給爬蟲(chóng)判定是否執行采集。雙擊網(wǎng)頁(yè)上的信息,輸入標簽名,并打勾確認,再勾上關(guān)鍵內容,首次標明還要輸入整理箱的名子,然后就完成標明映射了。
  Tips:為了能確切定位網(wǎng)頁(yè)信息,點(diǎn)擊定義規則會(huì )把整個(gè)網(wǎng)頁(yè)定格住,不能跳轉網(wǎng)頁(yè)鏈接,再次點(diǎn)擊定義規則,才會(huì )恢復回普通的網(wǎng)頁(yè)模式。
  第二步:定義連續動(dòng)作
  點(diǎn)擊工作臺的“連續動(dòng)作”頁(yè)簽,點(diǎn)擊新建按鍵構建一個(gè)新動(dòng)作,每個(gè)動(dòng)作的設置方式都是一樣,基本操作如下:
  
  2.1 ,輸入目標主題名
  這里的目標主題名是填第二級主題名,點(diǎn)擊“誰(shuí)在用”查看目標主題名是否可用,如果早已被占用,換一個(gè)主題名就行
  2.2, 創(chuàng )建第一個(gè)動(dòng)作:輸入
  新建一個(gè)動(dòng)作,并選擇動(dòng)作類(lèi)型為輸入。
  
  2.2.1,填寫(xiě)定位表達式
  首先鍵盤(pán)單擊輸入框,定位輸入框的節點(diǎn),然后點(diǎn)擊“自動(dòng)生成XPath”按鈕,可以選擇“偏好id”或者“偏好class”,就可以得到輸入框的xpath表達式,再點(diǎn)擊“搜索”按鈕,檢查一下這個(gè)xpath是否能惟一定位到輸入框,沒(méi)有問(wèn)題就把xpath復制到定位表達式方框里。
  注意:定位表達式里的xpath是要鎖定動(dòng)作對象的整個(gè)有效操作范圍,具體就是指鍵盤(pán)就能點(diǎn)擊或輸入成功的網(wǎng)頁(yè)模塊,不要定位到最底層的text()節點(diǎn)。
  2.2.2,輸入關(guān)鍵詞
  輸入關(guān)鍵詞填寫(xiě)你想搜索的關(guān)鍵詞,可以輸入一個(gè)關(guān)鍵詞,也可以輸入多個(gè)關(guān)鍵詞,輸入多個(gè)關(guān)鍵詞要用雙分號;;將每位關(guān)鍵詞隔開(kāi),免費版只支持5個(gè)以?xún)鹊年P(guān)鍵詞,旗艦版可以使用連發(fā)彈倉功能,支持1萬(wàn)以?xún)鹊年P(guān)鍵詞
  2.2.3,輸入動(dòng)作名稱(chēng)
  告訴自己這一步動(dòng)作是拿來(lái)干嘛的,方便之后更改。
  2.3,創(chuàng )建第二個(gè)動(dòng)作:點(diǎn)擊
  
  參考2.2的操作,創(chuàng )建第二個(gè)動(dòng)作,選擇類(lèi)型為點(diǎn)擊,定位到搜索按鍵,然后手動(dòng)生成xpath,檢驗是否鎖定到惟一節點(diǎn),沒(méi)問(wèn)題的話(huà)填到定位表達式里就行了。
  2.4,存規則
  點(diǎn)擊“存規則”按鈕保存已完成的第一級規則
  第三步:定義第二級規則
  3.1,新建規則
  創(chuàng )建第二級規則,點(diǎn)擊“定義規則”恢復到普通網(wǎng)頁(yè)模式,輸入關(guān)鍵詞搜索出結果后,再次點(diǎn)擊“定義規則”切換到做規則模式,點(diǎn)擊左上角“規則”菜單->“新建”,輸入主題名,這里的主題名就是第一級規則的連續動(dòng)作里填寫(xiě)的目標主題名。
  3.2,標注想要采集的信息
  
  3.2.1,標注網(wǎng)頁(yè)上想要采集的信息,這里是對商品名稱(chēng)和價(jià)位做標明,因為標明只對文本信息有效,商品詳情的鏈接是屬性節點(diǎn)@href,所以,不能對鏈接做這樣的直觀(guān)標明,而要做內容映射,具體看下邊的操作。
  3.2.2,點(diǎn)擊商品名稱(chēng),下面的DOM節點(diǎn)定位到A標簽,展開(kāi)A標簽下的attributes節點(diǎn),就可以找到代表網(wǎng)址的@href節點(diǎn),右擊節點(diǎn),選擇“新建抓取內容“,輸入一個(gè)名子,一般給這個(gè)抓取內容起一個(gè)和地址有關(guān)的名子,比如“下級網(wǎng)址“,或者”下級鏈接“等等。然后在工作臺上,看到這個(gè)抓取內容有了。如果還要步入商品詳情頁(yè)采集,就要對著(zhù)這個(gè)抓取內容勾選下級線(xiàn)索關(guān)鍵詞自動(dòng)采集,做層級抓取。
  3.2.3,設置“關(guān)鍵內容”選項,這樣爬蟲(chóng)就能判別出采集規則是否合適。在整理箱里選一個(gè)網(wǎng)頁(yè)上必然能采到的標簽關(guān)鍵詞自動(dòng)采集,勾上“關(guān)鍵內容”。這里選擇的是“名稱(chēng)”做為“關(guān)鍵內容”。
  3.2.4,前面只對一個(gè)商品做標明,也才能得到一個(gè)商品信息,如果想把一整頁(yè)上每一個(gè)商品都采集下來(lái),可以做樣例復制,不懂的請參考基礎教程《采集列表數據》
  3.3,設置翻頁(yè)路線(xiàn)
  
  在爬蟲(chóng)路線(xiàn)設置翻頁(yè),這里用的是記號線(xiàn)索,不懂的請參考基礎教程《設置翻頁(yè)采集》
  3.4,存規則
  點(diǎn)擊“測試”,檢查信息完整性。不完整的話(huà),重新標明就可以覆蓋之前的內容。檢查沒(méi)問(wèn)題后點(diǎn)擊“存規則”。
  第四步:抓數據
  
  4.1,連續動(dòng)作是連續執行的,所以只要運行第一級主題,第二級主題不用運行。打開(kāi)DS打數機,搜索出第一級主題名,點(diǎn)擊“單搜”或“集搜”,此時(shí)可以看見(jiàn)瀏覽器窗口里會(huì )手動(dòng)輸入關(guān)鍵詞而且搜索,然后調用第二級主題手動(dòng)采集搜索結果。
  4.2,第一級主題沒(méi)采到有意義的信息,所以,我們只看第二級主題的文件夾,就能看見(jiàn)采集的搜索結果數據,并且搜索的關(guān)鍵詞是默認記錄在xml文件的actionvalue數組中,這樣才能一一對應上去。

R爬蟲(chóng)之上市公司公告批量下載

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 360 次瀏覽 ? 2020-06-03 08:01 ? 來(lái)自相關(guān)話(huà)題

  
  2017-4-13 17:46|發(fā)布者: 煉數成金_小數|查看: 22744|評論: 1|原作者: 黃耀鵬|來(lái)自: R語(yǔ)言英文社區
  摘要: Selenium是一個(gè)用于測試網(wǎng)頁(yè)應用的開(kāi)源軟件。它提供了瀏覽器中的點(diǎn)擊,滾動(dòng),滑動(dòng),及文字輸入等驅動(dòng)程序。這樣,利用Selenium即可以通過(guò)腳本程序來(lái)代替人工進(jìn)行測試一個(gè)開(kāi)發(fā)軟件的各類(lèi)功能。在處理爬蟲(chóng)任務(wù)中,經(jīng)常 ...
  tm
  Python
  測試
  案例
  開(kāi)源軟件
  函數
  selenium的安裝及使用介紹
  Selenium是一個(gè)用于測試網(wǎng)頁(yè)應用的開(kāi)源軟件。它提供了瀏覽器中的點(diǎn)擊r軟件爬蟲(chóng),滾動(dòng),滑動(dòng)r軟件爬蟲(chóng),及文字輸入等驅動(dòng)程序。這樣,利用Selenium即可以通過(guò)腳本程序來(lái)代替人工進(jìn)行測試一個(gè)開(kāi)發(fā)軟件的各類(lèi)功能。
  在處理爬蟲(chóng)任務(wù)中,經(jīng)常碰到須要輸入文字,進(jìn)行下拉菜單選擇,以及滑鼠點(diǎn)擊等情境。這個(gè)時(shí)侯,selenium就派上大用場(chǎng)了。
  下面,我們先介紹一下Selenium的使用環(huán)境配置,接著(zhù)介紹怎樣通過(guò)R的拓展包Rwebdriver來(lái)使用Selenium,最后,展示一個(gè)爬蟲(chóng)案例應用。
  安裝配置
  安裝jre:
  下載地址:#win
  配置jre環(huán)境變量
  下載selenium,并放至指定位置
  下載地址:
  啟動(dòng)selenium
  打開(kāi)命令提示符
  進(jìn)入selenium所在路徑
  啟動(dòng)selenium
  cd "C:\Program Files (x86)\Rwebdriver"
  java -jar selenium-server-standalone-2.49.0.jar
  ### selenium接口函數介紹
  『Automated Data Collection with R』一書(shū)的作者開(kāi)發(fā)了R包Rwebdriver,用于聯(lián)接啟用selenium。
  該R包重要的函數如下:
  
  更多細節請參考:
  -『Automated Data Collection with R』第9章P253-P259
  Selenium with Python
  網(wǎng)頁(yè)開(kāi)發(fā)工具的使用介紹
 ?。ㄊ謩?dòng)演示)
  
  XML提取器相關(guān)函數的使用
  xpathSApply(doc,path,fun = NULL)
  可傳入的fun如下:
  
  案例演示——爬取上海證券交易所上市公司公告信息
  #### packages we need ####
  ## ----------------------------------------------------------------------- ##
  require(stringr)
  require(XML)
  require(RCurl)
  library(Rwebdriver)
  # set path
  setwd("ListedCompanyAnnouncement")
  # base url
  BaseUrl<-"http://www.sse.com.cn/disclosu ... ot%3B
  #start a session
  quit_session()
  start_session(root = "http://localhost:4444/wd/hub/",browser = "firefox")
  # post Base Url
  post.url(url = BaseUrl)
  # get xpath
  StockCodeField<-element_xpath_find(value = '//*[@id="inputCode"]')
  ClassificationField<-element_xpath_find(value = '/html/body/div[7]/div[2]/div[2]/div[2]/div/div/div/div/div[2]/div[1]/div[3]/div/button')
  StartDateField<-element_xpath_find(value = '//*[@id="start_date"]')
  EndDateField<-element_xpath_find(value = '//*[@id="end_date"]')
  SearchField<-element_xpath_find(value = '//*[@id="btnQuery"]')
  # fill stock code
  StockCode<-"600000"
  element_click(StockCodeField)
  keys(StockCode)
  Sys.sleep(2)
  #fill classification field
  element_click(ClassificationField)
  # get announcement xpath
  RegularAnnouncement<-element_xpath_find(value = '/html/body/div[7]/div[2]/div[2]/div[2]/div/div/div/div/div[2]/div[1]/div[3]/div/div/ul/li[2]')
  Sys.sleep(2)
  element_click(RegularAnnouncement)
  # #fill start and end date
  # element_click(StartDateField)
  # today's xpath
  EndToday<-element_xpath_find(value = '/html/body/div[13]/div[3]/table/tfoot/tr/th')
  Sys.sleep(2)
  element_click(EndDateField)
  Sys.sleep(2)
  element_click(EndToday)
  #click search
  element_click(SearchField)
  ###################################
  ####獲得所有文件的link ##
  all_links<-character() 查看全部

  
  2017-4-13 17:46|發(fā)布者: 煉數成金_小數|查看: 22744|評論: 1|原作者: 黃耀鵬|來(lái)自: R語(yǔ)言英文社區
  摘要: Selenium是一個(gè)用于測試網(wǎng)頁(yè)應用的開(kāi)源軟件。它提供了瀏覽器中的點(diǎn)擊,滾動(dòng),滑動(dòng),及文字輸入等驅動(dòng)程序。這樣,利用Selenium即可以通過(guò)腳本程序來(lái)代替人工進(jìn)行測試一個(gè)開(kāi)發(fā)軟件的各類(lèi)功能。在處理爬蟲(chóng)任務(wù)中,經(jīng)常 ...
  tm
  Python
  測試
  案例
  開(kāi)源軟件
  函數
  selenium的安裝及使用介紹
  Selenium是一個(gè)用于測試網(wǎng)頁(yè)應用的開(kāi)源軟件。它提供了瀏覽器中的點(diǎn)擊r軟件爬蟲(chóng),滾動(dòng),滑動(dòng)r軟件爬蟲(chóng),及文字輸入等驅動(dòng)程序。這樣,利用Selenium即可以通過(guò)腳本程序來(lái)代替人工進(jìn)行測試一個(gè)開(kāi)發(fā)軟件的各類(lèi)功能。
  在處理爬蟲(chóng)任務(wù)中,經(jīng)常碰到須要輸入文字,進(jìn)行下拉菜單選擇,以及滑鼠點(diǎn)擊等情境。這個(gè)時(shí)侯,selenium就派上大用場(chǎng)了。
  下面,我們先介紹一下Selenium的使用環(huán)境配置,接著(zhù)介紹怎樣通過(guò)R的拓展包Rwebdriver來(lái)使用Selenium,最后,展示一個(gè)爬蟲(chóng)案例應用。
  安裝配置
  安裝jre:
  下載地址:#win
  配置jre環(huán)境變量
  下載selenium,并放至指定位置
  下載地址:
  啟動(dòng)selenium
  打開(kāi)命令提示符
  進(jìn)入selenium所在路徑
  啟動(dòng)selenium
  cd "C:\Program Files (x86)\Rwebdriver"
  java -jar selenium-server-standalone-2.49.0.jar
  ### selenium接口函數介紹
  『Automated Data Collection with R』一書(shū)的作者開(kāi)發(fā)了R包Rwebdriver,用于聯(lián)接啟用selenium。
  該R包重要的函數如下:
  
  更多細節請參考:
  -『Automated Data Collection with R』第9章P253-P259
  Selenium with Python
  網(wǎng)頁(yè)開(kāi)發(fā)工具的使用介紹
 ?。ㄊ謩?dòng)演示)
  
  XML提取器相關(guān)函數的使用
  xpathSApply(doc,path,fun = NULL)
  可傳入的fun如下:
  
  案例演示——爬取上海證券交易所上市公司公告信息
  #### packages we need ####
  ## ----------------------------------------------------------------------- ##
  require(stringr)
  require(XML)
  require(RCurl)
  library(Rwebdriver)
  # set path
  setwd("ListedCompanyAnnouncement")
  # base url
  BaseUrl<-"http://www.sse.com.cn/disclosu ... ot%3B
  #start a session
  quit_session()
  start_session(root = "http://localhost:4444/wd/hub/",browser = "firefox")
  # post Base Url
  post.url(url = BaseUrl)
  # get xpath
  StockCodeField<-element_xpath_find(value = '//*[@id="inputCode"]')
  ClassificationField<-element_xpath_find(value = '/html/body/div[7]/div[2]/div[2]/div[2]/div/div/div/div/div[2]/div[1]/div[3]/div/button')
  StartDateField<-element_xpath_find(value = '//*[@id="start_date"]')
  EndDateField<-element_xpath_find(value = '//*[@id="end_date"]')
  SearchField<-element_xpath_find(value = '//*[@id="btnQuery"]')
  # fill stock code
  StockCode<-"600000"
  element_click(StockCodeField)
  keys(StockCode)
  Sys.sleep(2)
  #fill classification field
  element_click(ClassificationField)
  # get announcement xpath
  RegularAnnouncement<-element_xpath_find(value = '/html/body/div[7]/div[2]/div[2]/div[2]/div/div/div/div/div[2]/div[1]/div[3]/div/div/ul/li[2]')
  Sys.sleep(2)
  element_click(RegularAnnouncement)
  # #fill start and end date
  # element_click(StartDateField)
  # today's xpath
  EndToday<-element_xpath_find(value = '/html/body/div[13]/div[3]/table/tfoot/tr/th')
  Sys.sleep(2)
  element_click(EndDateField)
  Sys.sleep(2)
  element_click(EndToday)
  #click search
  element_click(SearchField)
  ###################################
  ####獲得所有文件的link ##
  all_links<-character()

百度搜索結果爬蟲(chóng)實(shí)現方式

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 328 次瀏覽 ? 2020-05-12 08:03 ? 來(lái)自相關(guān)話(huà)題

  
  八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)實(shí)現方式做 SEO 做流量的朋友,很多百度搜索數據都須要自己去抓取,大家就會(huì )選擇用 八爪魚(yú)爬蟲(chóng)工具進(jìn)行百度搜索結果的數據采集,大批量又高效。如何配置百度搜 索的采集任務(wù)呢,接下來(lái)本文將介紹使用八爪魚(yú)采集百度搜索結果的方式。采集網(wǎng)站:使用功能點(diǎn):? 分頁(yè)列表信息采集 ? Xpath ? AJAX 點(diǎn)擊和翻頁(yè)步驟 1:創(chuàng )建采集任務(wù)1)進(jìn)入主界面,選擇“自定義模式”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 12)將要采集的網(wǎng)址復制粘貼到網(wǎng)站輸入框中,點(diǎn)擊“保存網(wǎng)址”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 2步驟 2:輸入文本1)在頁(yè)面右上角,打開(kāi)“流程”,以突顯出“流程設計器”和“定制當前操作” 兩個(gè)藍籌股。點(diǎn)擊搜索框,在操作提示框中,選擇“輸入文字”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 32)輸入要采集的文本,這里以輸入“八爪魚(yú)采集器”為例。完成后,點(diǎn)擊“確 定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 43)輸入的文本手動(dòng)填充到搜索框后,點(diǎn)擊“百度一下”按鈕。在操作提示框中, 選擇“點(diǎn)擊該按鍵”百度搜索結果爬蟲(chóng)方式圖 5此步驟涉及 Ajax 技術(shù)。
  打開(kāi)“高級選項”,勾選“Ajax 加載數據”,設置時(shí)間 為“2 秒”。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 6步驟 3:創(chuàng )建翻頁(yè)循環(huán)1)將頁(yè)面下拉到頂部,點(diǎn)擊“下一頁(yè)”按鈕,在兩側的操作提示框中,選擇“循 環(huán)點(diǎn)擊下一頁(yè)”,以完善一個(gè)翻頁(yè)循環(huán)八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 72)選中“循環(huán)翻頁(yè)”步驟,打開(kāi)“高級選項”,將單個(gè)元素中的這條 Xpath: //A[@class='n',復制粘貼到火狐瀏覽器中的相應位置八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 8可以看見(jiàn),當在第 1 頁(yè)的時(shí)侯,使用此條 Xpath,可以定位到“下一頁(yè)”百度搜索結果爬蟲(chóng)方式圖 9八爪魚(yú)·云采集服務(wù)平臺 當翻到第 2 頁(yè)的時(shí)侯,使用此條 Xpath,既可定位到“上一頁(yè)”,又可定位到 “下一頁(yè)”百度搜索結果爬蟲(chóng)方式圖 103)返回八爪魚(yú)采集器,點(diǎn)擊“自定義”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 114)勾選“元素文本=下一頁(yè)>”百度爬蟲(chóng),對應生成的 Xpath 為://A[@text()='下一 頁(yè)']。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 125)將修改后的 Xpath://A[@text()='下一頁(yè)'],再次復制粘貼到火狐瀏覽器 中。
  可以看見(jiàn),當翻到第 2 頁(yè)的時(shí)侯,可正常定位到“下一頁(yè)”,第 3、4、5、 6 等也可正常定位到“下一頁(yè)”,翻頁(yè)循環(huán)可正常運行八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 13步驟 4:創(chuàng )建列表循環(huán)并提取數據1)移動(dòng)滑鼠,選中頁(yè)面里第一條搜索結果的區塊,再選中頁(yè)面內另一條搜索結 果的區塊。系統會(huì )手動(dòng)辨識并選中,頁(yè)面里其他搜索結果的區塊,以完善一個(gè)列 表循環(huán)。在操作提示框中,選擇“采集以下元素文本”。整個(gè)區塊里的信息,作 為一個(gè)數組,被采集下來(lái)八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 142)選中“循環(huán)”步驟,打開(kāi)“高級選項”,將不固定元素列表中的這條 Xpath: //DIV[@id='content_left']/DIV,復制粘貼到火狐瀏覽器中的相應位置八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 153)將八爪魚(yú)中的 Xpath,復制到火狐瀏覽器中的相應位置。觀(guān)察頁(yè)面,我們不 需要采集的“相關(guān)搜索”和“廣告”內容也被定位了八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 164 ) 觀(guān) 察 網(wǎng) 頁(yè) 源 碼 , 我 們 要 采 集 的 區 塊 , 具 有 相 同 的 tpl 屬 性 , tpl="se_com_default"(如圖紅框中所示),通過(guò) tpl 屬性,可即將采集的縣 塊與不需要采集的廣告、推薦內容分辨開(kāi)來(lái)。
  將 Xpath 修改為: //DIV[@id='content_left']/DIV[@tpl="se_com_default"]。再觀(guān)察頁(yè)面, 要采集的內容都被定位了,不需要采集的廣告、推薦內容未被定位八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 175)將修改后的 Xpath: //DIV[@id='content_left']/DIV[@tpl="se_com_default"], 復制粘貼到八 爪蝦采集器的相應位置。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 186)在這里,我們還想采集每條搜索結果的鏈接 URL。選中頁(yè)面內一條搜索結果 的鏈接,在操作提示框中,選擇“采集該鏈接地址”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 197)字段選擇完成后,選中相應的數組,可以進(jìn)行數組的自定義命名。完成后, 點(diǎn)擊左上角的“保存并啟動(dòng)”,選擇“啟動(dòng)本地采集”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 20步驟 5:數據采集及導入1)采集完成后,會(huì )跳出提示,選擇“導出數據”。選擇“合適的導入方法”, 將采集好的數據導入八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 212)這里我們選擇 excel 作為導入為格式,數據導入后如下圖百度搜索結果爬蟲(chóng)方式圖 22八爪魚(yú)·云采集服務(wù)平臺 相關(guān)采集教程: 百度爬蟲(chóng) 百度地圖店家采集工具 百度地圖數據采集 百度搜索結果抓取和采集詳細教程 使用八爪魚(yú) v7.0 簡(jiǎn)易模式采集百度百科內容 百度地圖店家地址采集 百度文庫數據采集方法,以列表頁(yè)為例 百度貼吧內容采集 百度相關(guān)搜索關(guān)鍵詞采集 百度知道問(wèn)答采集八爪魚(yú)·云采集服務(wù)平臺 http://www.bazhuayu.com/tutorial/bdzhidaocj八爪魚(yú)——百萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。
   1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。 2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機百度爬蟲(chóng),任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。 查看全部

  
  八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)實(shí)現方式做 SEO 做流量的朋友,很多百度搜索數據都須要自己去抓取,大家就會(huì )選擇用 八爪魚(yú)爬蟲(chóng)工具進(jìn)行百度搜索結果的數據采集,大批量又高效。如何配置百度搜 索的采集任務(wù)呢,接下來(lái)本文將介紹使用八爪魚(yú)采集百度搜索結果的方式。采集網(wǎng)站:使用功能點(diǎn):? 分頁(yè)列表信息采集 ? Xpath ? AJAX 點(diǎn)擊和翻頁(yè)步驟 1:創(chuàng )建采集任務(wù)1)進(jìn)入主界面,選擇“自定義模式”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 12)將要采集的網(wǎng)址復制粘貼到網(wǎng)站輸入框中,點(diǎn)擊“保存網(wǎng)址”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 2步驟 2:輸入文本1)在頁(yè)面右上角,打開(kāi)“流程”,以突顯出“流程設計器”和“定制當前操作” 兩個(gè)藍籌股。點(diǎn)擊搜索框,在操作提示框中,選擇“輸入文字”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 32)輸入要采集的文本,這里以輸入“八爪魚(yú)采集器”為例。完成后,點(diǎn)擊“確 定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 43)輸入的文本手動(dòng)填充到搜索框后,點(diǎn)擊“百度一下”按鈕。在操作提示框中, 選擇“點(diǎn)擊該按鍵”百度搜索結果爬蟲(chóng)方式圖 5此步驟涉及 Ajax 技術(shù)。
  打開(kāi)“高級選項”,勾選“Ajax 加載數據”,設置時(shí)間 為“2 秒”。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 6步驟 3:創(chuàng )建翻頁(yè)循環(huán)1)將頁(yè)面下拉到頂部,點(diǎn)擊“下一頁(yè)”按鈕,在兩側的操作提示框中,選擇“循 環(huán)點(diǎn)擊下一頁(yè)”,以完善一個(gè)翻頁(yè)循環(huán)八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 72)選中“循環(huán)翻頁(yè)”步驟,打開(kāi)“高級選項”,將單個(gè)元素中的這條 Xpath: //A[@class='n',復制粘貼到火狐瀏覽器中的相應位置八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 8可以看見(jiàn),當在第 1 頁(yè)的時(shí)侯,使用此條 Xpath,可以定位到“下一頁(yè)”百度搜索結果爬蟲(chóng)方式圖 9八爪魚(yú)·云采集服務(wù)平臺 當翻到第 2 頁(yè)的時(shí)侯,使用此條 Xpath,既可定位到“上一頁(yè)”,又可定位到 “下一頁(yè)”百度搜索結果爬蟲(chóng)方式圖 103)返回八爪魚(yú)采集器,點(diǎn)擊“自定義”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 114)勾選“元素文本=下一頁(yè)>”百度爬蟲(chóng),對應生成的 Xpath 為://A[@text()='下一 頁(yè)']。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 125)將修改后的 Xpath://A[@text()='下一頁(yè)'],再次復制粘貼到火狐瀏覽器 中。
  可以看見(jiàn),當翻到第 2 頁(yè)的時(shí)侯,可正常定位到“下一頁(yè)”,第 3、4、5、 6 等也可正常定位到“下一頁(yè)”,翻頁(yè)循環(huán)可正常運行八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 13步驟 4:創(chuàng )建列表循環(huán)并提取數據1)移動(dòng)滑鼠,選中頁(yè)面里第一條搜索結果的區塊,再選中頁(yè)面內另一條搜索結 果的區塊。系統會(huì )手動(dòng)辨識并選中,頁(yè)面里其他搜索結果的區塊,以完善一個(gè)列 表循環(huán)。在操作提示框中,選擇“采集以下元素文本”。整個(gè)區塊里的信息,作 為一個(gè)數組,被采集下來(lái)八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 142)選中“循環(huán)”步驟,打開(kāi)“高級選項”,將不固定元素列表中的這條 Xpath: //DIV[@id='content_left']/DIV,復制粘貼到火狐瀏覽器中的相應位置八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 153)將八爪魚(yú)中的 Xpath,復制到火狐瀏覽器中的相應位置。觀(guān)察頁(yè)面,我們不 需要采集的“相關(guān)搜索”和“廣告”內容也被定位了八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 164 ) 觀(guān) 察 網(wǎng) 頁(yè) 源 碼 , 我 們 要 采 集 的 區 塊 , 具 有 相 同 的 tpl 屬 性 , tpl="se_com_default"(如圖紅框中所示),通過(guò) tpl 屬性,可即將采集的縣 塊與不需要采集的廣告、推薦內容分辨開(kāi)來(lái)。
  將 Xpath 修改為: //DIV[@id='content_left']/DIV[@tpl="se_com_default"]。再觀(guān)察頁(yè)面, 要采集的內容都被定位了,不需要采集的廣告、推薦內容未被定位八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 175)將修改后的 Xpath: //DIV[@id='content_left']/DIV[@tpl="se_com_default"], 復制粘貼到八 爪蝦采集器的相應位置。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 186)在這里,我們還想采集每條搜索結果的鏈接 URL。選中頁(yè)面內一條搜索結果 的鏈接,在操作提示框中,選擇“采集該鏈接地址”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 197)字段選擇完成后,選中相應的數組,可以進(jìn)行數組的自定義命名。完成后, 點(diǎn)擊左上角的“保存并啟動(dòng)”,選擇“啟動(dòng)本地采集”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 20步驟 5:數據采集及導入1)采集完成后,會(huì )跳出提示,選擇“導出數據”。選擇“合適的導入方法”, 將采集好的數據導入八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 212)這里我們選擇 excel 作為導入為格式,數據導入后如下圖百度搜索結果爬蟲(chóng)方式圖 22八爪魚(yú)·云采集服務(wù)平臺 相關(guān)采集教程: 百度爬蟲(chóng) 百度地圖店家采集工具 百度地圖數據采集 百度搜索結果抓取和采集詳細教程 使用八爪魚(yú) v7.0 簡(jiǎn)易模式采集百度百科內容 百度地圖店家地址采集 百度文庫數據采集方法,以列表頁(yè)為例 百度貼吧內容采集 百度相關(guān)搜索關(guān)鍵詞采集 百度知道問(wèn)答采集八爪魚(yú)·云采集服務(wù)平臺 http://www.bazhuayu.com/tutorial/bdzhidaocj八爪魚(yú)——百萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。
   1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。 2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機百度爬蟲(chóng),任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。

Python網(wǎng)絡(luò )爬蟲(chóng)四大選擇器(正則表達式、BS4、Xpath、CSS)總結

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 453 次瀏覽 ? 2020-05-12 08:01 ? 來(lái)自相關(guān)話(huà)題

  前幾天小編連續寫(xiě)了四篇關(guān)于Python選擇器的文章,分別用正則表達式、BeautifulSoup、Xpath、CSS選擇器分別抓取京東網(wǎng)的商品信息。今天小編來(lái)給你們總結一下這四個(gè)選擇器,讓你們愈發(fā)深刻的理解和熟悉Python選擇器。
  一、正則表達式
  正則表達式為我們提供了抓取數據的快捷方法。雖然該正則表達式更容易適應未來(lái)變化網(wǎng)絡(luò )爬蟲(chóng) 正則表達式,但又存在無(wú)法構造、可讀性差的問(wèn)題。當在爬京東網(wǎng)的時(shí)侯,正則表達式如下圖所示:
  
  利用正則表達式實(shí)現對目標信息的精準采集
  此外 ,我們都曉得,網(wǎng)頁(yè)經(jīng)常會(huì )形成變更,導致網(wǎng)頁(yè)中會(huì )發(fā)生一些微小的布局變化時(shí),此時(shí)也會(huì )促使之前寫(xiě)好的正則表達式未能滿(mǎn)足需求,而且還不太好調試。當須要匹配的內容有很多的時(shí)侯,使用正則表達式提取目標信息會(huì )導致程序運行的速率減緩,需要消耗更多顯存。
  二、BeautifulSoup
  BeautifulSoup是一個(gè)十分流行的 Pyhon 模塊。該模塊可以解析網(wǎng)頁(yè),并提供定位內容的方便插口。通過(guò)'pip install beautifulsoup4'就可以實(shí)現該模塊的安裝了。
  
  利用美麗的湯去提取目標信息
  使用 BeautifulSoup的第一步是將己下載的 HTML 內容解析為 soup文檔。由 于大多數網(wǎng)頁(yè)都不具備良好的HTML 格式,因此BeautifulSoup須要對實(shí)際格式進(jìn)行確定。BeautifulSoup才能正確解析缺位的冒號并閉合標簽,此外都會(huì )添加<html >和<body>標簽讓其成為完整的HTML文檔。通常使用find() 和find_all()方法來(lái)定位我們須要的元素。
  如果你想了解BeautifulSoup全部方式和參數,可以查閱BeautifulSoup的官方文檔。雖然BeautifulSoup在代碼的理解上比正則表達式要復雜一些,但是其愈發(fā)容易構造和理解。
  三、Lxml
  Lxml模塊使用 C語(yǔ)言編撰,其解析速率比 BeautiflSoup更快,而且其安裝過(guò)程也更為復雜,在此小編就不贅言啦。XPath 使用路徑表達式在 XML 文檔中選定節點(diǎn)。節點(diǎn)是通過(guò)順著(zhù)路徑或則 step 來(lái)選定的。
  
  Xpath選擇器
  使用 lxml 模塊的第一步和BeautifulSoup一樣,也是將有可能不合法的HTML 解析為 統一格式。 雖然Lxml可以正確解析屬性?xún)蛇吶蔽坏拿疤柧W(wǎng)絡(luò )爬蟲(chóng) 正則表達式,并閉合標簽,不過(guò)該模塊沒(méi)有額外添加<html >和<body>標簽 。
  在線(xiàn)復制Xpath表達式可以很方便的復制Xpath表達式。但是通過(guò)該方式得到的Xpath表達式置于程序中通常不能用,而且長(cháng)的無(wú)法看。所以Xpath表達式通常還是要自己親自上手。
  四、CSS
  CSS選擇器表示選擇元素所使用 的模式。BeautifulSoup整合了CSS選擇器的句型和自身便捷使用API。在網(wǎng)路爬蟲(chóng)的開(kāi)發(fā)過(guò)程中,對于熟悉CSS選擇器句型的人,使用CSS選擇器是個(gè)十分便捷的方式。
  
  CSS選擇器
  下面是一些常用的選擇器示例。 查看全部

  前幾天小編連續寫(xiě)了四篇關(guān)于Python選擇器的文章,分別用正則表達式、BeautifulSoup、Xpath、CSS選擇器分別抓取京東網(wǎng)的商品信息。今天小編來(lái)給你們總結一下這四個(gè)選擇器,讓你們愈發(fā)深刻的理解和熟悉Python選擇器。
  一、正則表達式
  正則表達式為我們提供了抓取數據的快捷方法。雖然該正則表達式更容易適應未來(lái)變化網(wǎng)絡(luò )爬蟲(chóng) 正則表達式,但又存在無(wú)法構造、可讀性差的問(wèn)題。當在爬京東網(wǎng)的時(shí)侯,正則表達式如下圖所示:
  
  利用正則表達式實(shí)現對目標信息的精準采集
  此外 ,我們都曉得,網(wǎng)頁(yè)經(jīng)常會(huì )形成變更,導致網(wǎng)頁(yè)中會(huì )發(fā)生一些微小的布局變化時(shí),此時(shí)也會(huì )促使之前寫(xiě)好的正則表達式未能滿(mǎn)足需求,而且還不太好調試。當須要匹配的內容有很多的時(shí)侯,使用正則表達式提取目標信息會(huì )導致程序運行的速率減緩,需要消耗更多顯存。
  二、BeautifulSoup
  BeautifulSoup是一個(gè)十分流行的 Pyhon 模塊。該模塊可以解析網(wǎng)頁(yè),并提供定位內容的方便插口。通過(guò)'pip install beautifulsoup4'就可以實(shí)現該模塊的安裝了。
  
  利用美麗的湯去提取目標信息
  使用 BeautifulSoup的第一步是將己下載的 HTML 內容解析為 soup文檔。由 于大多數網(wǎng)頁(yè)都不具備良好的HTML 格式,因此BeautifulSoup須要對實(shí)際格式進(jìn)行確定。BeautifulSoup才能正確解析缺位的冒號并閉合標簽,此外都會(huì )添加<html >和<body>標簽讓其成為完整的HTML文檔。通常使用find() 和find_all()方法來(lái)定位我們須要的元素。
  如果你想了解BeautifulSoup全部方式和參數,可以查閱BeautifulSoup的官方文檔。雖然BeautifulSoup在代碼的理解上比正則表達式要復雜一些,但是其愈發(fā)容易構造和理解。
  三、Lxml
  Lxml模塊使用 C語(yǔ)言編撰,其解析速率比 BeautiflSoup更快,而且其安裝過(guò)程也更為復雜,在此小編就不贅言啦。XPath 使用路徑表達式在 XML 文檔中選定節點(diǎn)。節點(diǎn)是通過(guò)順著(zhù)路徑或則 step 來(lái)選定的。
  
  Xpath選擇器
  使用 lxml 模塊的第一步和BeautifulSoup一樣,也是將有可能不合法的HTML 解析為 統一格式。 雖然Lxml可以正確解析屬性?xún)蛇吶蔽坏拿疤柧W(wǎng)絡(luò )爬蟲(chóng) 正則表達式,并閉合標簽,不過(guò)該模塊沒(méi)有額外添加<html >和<body>標簽 。
  在線(xiàn)復制Xpath表達式可以很方便的復制Xpath表達式。但是通過(guò)該方式得到的Xpath表達式置于程序中通常不能用,而且長(cháng)的無(wú)法看。所以Xpath表達式通常還是要自己親自上手。
  四、CSS
  CSS選擇器表示選擇元素所使用 的模式。BeautifulSoup整合了CSS選擇器的句型和自身便捷使用API。在網(wǎng)路爬蟲(chóng)的開(kāi)發(fā)過(guò)程中,對于熟悉CSS選擇器句型的人,使用CSS選擇器是個(gè)十分便捷的方式。
  
  CSS選擇器
  下面是一些常用的選擇器示例。

Scrapy爬蟲(chóng)框架:抓取天貓淘寶數據

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 400 次瀏覽 ? 2020-05-05 08:05 ? 來(lái)自相關(guān)話(huà)題

  有了前兩篇的基礎,接下來(lái)通過(guò)抓取天貓和淘寶的數據來(lái)詳盡說(shuō)明,如何通過(guò)Scrapy爬取想要的內容。完整的代碼:[不帶數據庫版本][ 數據庫版本]。
  通過(guò)天貓的搜索,獲取搜索下來(lái)的每件商品的銷(xiāo)量、收藏數、價(jià)格。
  所以,最終的目的是通過(guò)獲取兩個(gè)頁(yè)面的內容,一個(gè)是搜索結果,從上面找下來(lái)每一個(gè)商品的詳盡地址,然后第二個(gè)是商品詳盡內容,從上面獲取到銷(xiāo)量、價(jià)格等。
  有了思路如今我們先下載搜索結果頁(yè)面,然后再下載頁(yè)面中每一項詳盡信息頁(yè)面。
   def _parse_handler(self, response):
''' 下載頁(yè)面 """
self.driver.get(response.url)
pass
  很簡(jiǎn)單,通過(guò)self.driver.get(response.url)就能使用selenium下載內容,如果直接使用response中的網(wǎng)頁(yè)內容是靜態(tài)的。
  上面說(shuō)了怎樣下載內容,當我們下載好內容后,需要從上面去獲取我們想要的有用信息,這里就要用到選擇器,選擇器構造方法比較多,只介紹一種,這里看詳盡信息:
  >>> body = '<html><body><span>good</span></body></html>'
>>> Selector(text=body).xpath('//span/text()').extract()
[u'good']
  這樣就通過(guò)xpath取下來(lái)了good這個(gè)詞組,更詳盡的xpath教程點(diǎn)擊這兒。
  Selector 提供了好多形式出了xpath,還有css選擇器,正則表達式,中文教程看這個(gè),具體內容就不多說(shuō),只須要曉得這樣可以快速獲取我們須要的內容。
  簡(jiǎn)單的介紹了如何獲取內容后,現在我們從第一個(gè)搜索結果中獲取我們想要的商品詳盡鏈接,通過(guò)查看網(wǎng)頁(yè)源代碼可以看見(jiàn),商品的鏈接在這里:
  ...
<p class="title">
<a class="J_ClickStat" data-nid="523242229702" href="//detail.tmall.com/item.htm?spm=a230r.1.14.46.Mnbjq5&id=523242229702&ns=1&abbucket=14" target="_blank" trace="msrp_auction" traceidx="5" trace-pid="" data-spm-anchor-id="a230r.1.14.46">WD/西部數據 WD30EZRZ臺式機3T電腦<span class="H">硬盤(pán)</span> 西數藍盤(pán)3TB 替綠盤(pán)</a>
</p>
...
  使用之前的規則來(lái)獲取到a元素的href屬性就是須要的內容:
  selector = Selector(text=self.driver.page_source) # 這里不要省略text因為省略后Selector使用的是另外一個(gè)構造函數,self.driver.page_source是這個(gè)網(wǎng)頁(yè)的html內容
selector.css(".title").css(".J_ClickStat").xpath("./@href").extract()
  簡(jiǎn)單說(shuō)一下,這里通過(guò)css工具取了class叫title的p元素,然后又獲取了class是J_ClickStat的a元素,最后通過(guò)xpath規則獲取a元素的href中的內容。啰嗦一句css中若果是取id則應當是selector.css("#title"),這個(gè)和css中的選擇器是一致的。
  同理,我們獲取到商品詳情后,以獲取銷(xiāo)量為例,查看源代碼:
  <ul class="tm-ind-panel">
<li class="tm-ind-item tm-ind-sellCount" data-label="月銷(xiāo)量"><div class="tm-indcon"><span class="tm-label">月銷(xiāo)量</span><span class="tm-count">881</span></div></li>
<li class="tm-ind-item tm-ind-reviewCount canClick tm-line3" id="J_ItemRates"><div class="tm-indcon"><span class="tm-label">累計評價(jià)</span><span class="tm-count">4593</span></div></li>
<li class="tm-ind-item tm-ind-emPointCount" data-spm="1000988"><div class="tm-indcon"><a href="//vip.tmall.com/vip/index.htm" target="_blank"><span class="tm-label">送天貓積分</span><span class="tm-count">55</span></a></div></li>
</ul>
  獲取月銷(xiāo)量:
  selector.css(".tm-ind-sellCount").xpath("./div/span[@class='tm-count']/text()").extract_first()
  獲取累計評價(jià):
  selector.css(".tm-ind-reviewCount").xpath("./div[@class='tm-indcon']/span[@class='tm-count']/text()").extract_first()
  最后把獲取下來(lái)的數據包裝成Item返回。淘寶或則淘寶她們的頁(yè)面內容不一樣,所以規則也不同,需要分開(kāi)去獲取想要的內容。
  Item是scrapy中獲取下來(lái)的結果,后面可以處理這種結果。
  Item通常是放在items.py中
  import scrapy
class Product(scrapy.Item):
name = scrapy.Field()
price = scrapy.Field()
stock = scrapy.Field()
last_updated = scrapy.Field(serializer=str)
  >>> product = Product(name='Desktop PC', price=1000)
>>> print product
Product(name='Desktop PC', price=1000)
  >>> product['name']
Desktop PC
>>> product.get('name')
Desktop PC
>>> product['price']
1000
>>> product['last_updated']
Traceback (most recent call last):
...
KeyError: 'last_updated'
>>> product.get('last_updated', 'not set')
not set
>>> product['lala'] # getting unknown field
Traceback (most recent call last):
...
KeyError: 'lala'
>>> product.get('lala', 'unknown field')
'unknown field'
>>> 'name' in product # is name field populated?
True
>>> 'last_updated' in product # is last_updated populated?
False
>>> 'last_updated' in product.fields # is last_updated a declared field?
True
>>> 'lala' in product.fields # is lala a declared field?
False
  >>> product['last_updated'] = 'today'
>>> product['last_updated']
today
>>> product['lala'] = 'test' # setting unknown field
Traceback (most recent call last):
...
KeyError: 'Product does not support field: lala'
  這里只須要注意一個(gè)地方,不能通過(guò)product.name的方法獲取,也不能通過(guò)product.name = "name"的形式設置值。
  當Item在Spider中被搜集以后,它將會(huì )被傳遞到Item Pipeline,一些組件會(huì )根據一定的次序執行對Item的處理。
  每個(gè)item pipeline組件(有時(shí)稱(chēng)之為“Item Pipeline”)是實(shí)現了簡(jiǎn)單方式的Python類(lèi)。他們接收到Item并通過(guò)它執行一些行為,同時(shí)也決定此Item是否繼續通過(guò)pipeline,或是被遺棄而不再進(jìn)行處理。
  以下是item pipeline的一些典型應用:
  現在實(shí)現一個(gè)Item過(guò)濾器,我們把獲取下來(lái)若果是None的數據形參為0,如果Item對象是None則丟棄這條數據。
  pipeline通常是放在pipelines.py中
   def process_item(self, item, spider):
if item is not None:
if item["p_standard_price"] is None:
item["p_standard_price"] = item["p_shop_price"]
if item["p_shop_price"] is None:
item["p_shop_price"] = item["p_standard_price"]
item["p_collect_count"] = text_utils.to_int(item["p_collect_count"])
item["p_comment_count"] = text_utils.to_int(item["p_comment_count"])
item["p_month_sale_count"] = text_utils.to_int(item["p_month_sale_count"])
item["p_sale_count"] = text_utils.to_int(item["p_sale_count"])
item["p_standard_price"] = text_utils.to_string(item["p_standard_price"], "0")
item["p_shop_price"] = text_utils.to_string(item["p_shop_price"], "0")
item["p_pay_count"] = item["p_pay_count"] if item["p_pay_count"] is not "-" else "0"
return item
else:
raise DropItem("Item is None %s" % item)
  最后須要在settings.py中添加這個(gè)pipeline
  ITEM_PIPELINES = {
'TaoBao.pipelines.TTDataHandlerPipeline': 250,
'TaoBao.pipelines.MysqlPipeline': 300,
}
  后面那種數字越小,則執行的次序越靠前,這里先過(guò)濾處理數據,獲取到正確的數據后,再執行TaoBao.pipelines.MysqlPipeline添加數據到數據庫。
  完整的代碼:[不帶數據庫版本][ 數據庫版本]。
  之前說(shuō)的方法都是直接通過(guò)命令scrapy crawl tts來(lái)啟動(dòng)。怎么用IDE的調試功能呢?很簡(jiǎn)單通過(guò)main函數啟動(dòng)爬蟲(chóng):
  # 寫(xiě)到Spider里面
if __name__ == "__main__":
settings = get_project_settings()
process = CrawlerProcess(settings)
spider = TmallAndTaoBaoSpider
process.crawl(spider)
process.start()
  在獲取數據的時(shí)侯,很多時(shí)侯會(huì )碰到網(wǎng)頁(yè)重定向的問(wèn)題,scrapy會(huì )返回302之后不會(huì )手動(dòng)重定向后繼續爬取新地址,在scrapy的設置中,可以通過(guò)配置來(lái)開(kāi)啟重定向,這樣雖然域名是重定向的scrapy也會(huì )手動(dòng)到最終的地址獲取內容。
  解決方案:settings.py中添加REDIRECT_ENABLED = True
  很多時(shí)侯爬蟲(chóng)都有自定義數據,比如之前寫(xiě)的是硬碟關(guān)鍵字,現在通過(guò)參數的方法如何傳遞呢?
  解決方案:
  大部分時(shí)侯,我們可以取到完整的網(wǎng)頁(yè)信息,如果網(wǎng)頁(yè)的ajax懇求太多,網(wǎng)速很慢的時(shí)侯,selenium并不知道什么時(shí)候ajax懇求完成,這個(gè)時(shí)侯假如通過(guò)self.driver.get(response.url)獲取頁(yè)面天貓反爬蟲(chóng),然后通過(guò)Selector取數據天貓反爬蟲(chóng),很可能還沒(méi)加載完成取不到數據。
  解決方案:通過(guò)selenium提供的工具來(lái)延后獲取內容,直到獲取到數據,或者超時(shí)。 查看全部

  有了前兩篇的基礎,接下來(lái)通過(guò)抓取天貓和淘寶的數據來(lái)詳盡說(shuō)明,如何通過(guò)Scrapy爬取想要的內容。完整的代碼:[不帶數據庫版本][ 數據庫版本]。
  通過(guò)天貓的搜索,獲取搜索下來(lái)的每件商品的銷(xiāo)量、收藏數、價(jià)格。
  所以,最終的目的是通過(guò)獲取兩個(gè)頁(yè)面的內容,一個(gè)是搜索結果,從上面找下來(lái)每一個(gè)商品的詳盡地址,然后第二個(gè)是商品詳盡內容,從上面獲取到銷(xiāo)量、價(jià)格等。
  有了思路如今我們先下載搜索結果頁(yè)面,然后再下載頁(yè)面中每一項詳盡信息頁(yè)面。
   def _parse_handler(self, response):
''' 下載頁(yè)面 """
self.driver.get(response.url)
pass
  很簡(jiǎn)單,通過(guò)self.driver.get(response.url)就能使用selenium下載內容,如果直接使用response中的網(wǎng)頁(yè)內容是靜態(tài)的。
  上面說(shuō)了怎樣下載內容,當我們下載好內容后,需要從上面去獲取我們想要的有用信息,這里就要用到選擇器,選擇器構造方法比較多,只介紹一種,這里看詳盡信息:
  >>> body = '<html><body><span>good</span></body></html>'
>>> Selector(text=body).xpath('//span/text()').extract()
[u'good']
  這樣就通過(guò)xpath取下來(lái)了good這個(gè)詞組,更詳盡的xpath教程點(diǎn)擊這兒。
  Selector 提供了好多形式出了xpath,還有css選擇器,正則表達式,中文教程看這個(gè),具體內容就不多說(shuō),只須要曉得這樣可以快速獲取我們須要的內容。
  簡(jiǎn)單的介紹了如何獲取內容后,現在我們從第一個(gè)搜索結果中獲取我們想要的商品詳盡鏈接,通過(guò)查看網(wǎng)頁(yè)源代碼可以看見(jiàn),商品的鏈接在這里:
  ...
<p class="title">
<a class="J_ClickStat" data-nid="523242229702" href="//detail.tmall.com/item.htm?spm=a230r.1.14.46.Mnbjq5&id=523242229702&ns=1&abbucket=14" target="_blank" trace="msrp_auction" traceidx="5" trace-pid="" data-spm-anchor-id="a230r.1.14.46">WD/西部數據 WD30EZRZ臺式機3T電腦<span class="H">硬盤(pán)</span> 西數藍盤(pán)3TB 替綠盤(pán)</a>
</p>
...
  使用之前的規則來(lái)獲取到a元素的href屬性就是須要的內容:
  selector = Selector(text=self.driver.page_source) # 這里不要省略text因為省略后Selector使用的是另外一個(gè)構造函數,self.driver.page_source是這個(gè)網(wǎng)頁(yè)的html內容
selector.css(".title").css(".J_ClickStat").xpath("./@href").extract()
  簡(jiǎn)單說(shuō)一下,這里通過(guò)css工具取了class叫title的p元素,然后又獲取了class是J_ClickStat的a元素,最后通過(guò)xpath規則獲取a元素的href中的內容。啰嗦一句css中若果是取id則應當是selector.css("#title"),這個(gè)和css中的選擇器是一致的。
  同理,我們獲取到商品詳情后,以獲取銷(xiāo)量為例,查看源代碼:
  <ul class="tm-ind-panel">
<li class="tm-ind-item tm-ind-sellCount" data-label="月銷(xiāo)量"><div class="tm-indcon"><span class="tm-label">月銷(xiāo)量</span><span class="tm-count">881</span></div></li>
<li class="tm-ind-item tm-ind-reviewCount canClick tm-line3" id="J_ItemRates"><div class="tm-indcon"><span class="tm-label">累計評價(jià)</span><span class="tm-count">4593</span></div></li>
<li class="tm-ind-item tm-ind-emPointCount" data-spm="1000988"><div class="tm-indcon"><a href="//vip.tmall.com/vip/index.htm" target="_blank"><span class="tm-label">送天貓積分</span><span class="tm-count">55</span></a></div></li>
</ul>
  獲取月銷(xiāo)量:
  selector.css(".tm-ind-sellCount").xpath("./div/span[@class='tm-count']/text()").extract_first()
  獲取累計評價(jià):
  selector.css(".tm-ind-reviewCount").xpath("./div[@class='tm-indcon']/span[@class='tm-count']/text()").extract_first()
  最后把獲取下來(lái)的數據包裝成Item返回。淘寶或則淘寶她們的頁(yè)面內容不一樣,所以規則也不同,需要分開(kāi)去獲取想要的內容。
  Item是scrapy中獲取下來(lái)的結果,后面可以處理這種結果。
  Item通常是放在items.py中
  import scrapy
class Product(scrapy.Item):
name = scrapy.Field()
price = scrapy.Field()
stock = scrapy.Field()
last_updated = scrapy.Field(serializer=str)
  >>> product = Product(name='Desktop PC', price=1000)
>>> print product
Product(name='Desktop PC', price=1000)
  >>> product['name']
Desktop PC
>>> product.get('name')
Desktop PC
>>> product['price']
1000
>>> product['last_updated']
Traceback (most recent call last):
...
KeyError: 'last_updated'
>>> product.get('last_updated', 'not set')
not set
>>> product['lala'] # getting unknown field
Traceback (most recent call last):
...
KeyError: 'lala'
>>> product.get('lala', 'unknown field')
'unknown field'
>>> 'name' in product # is name field populated?
True
>>> 'last_updated' in product # is last_updated populated?
False
>>> 'last_updated' in product.fields # is last_updated a declared field?
True
>>> 'lala' in product.fields # is lala a declared field?
False
  >>> product['last_updated'] = 'today'
>>> product['last_updated']
today
>>> product['lala'] = 'test' # setting unknown field
Traceback (most recent call last):
...
KeyError: 'Product does not support field: lala'
  這里只須要注意一個(gè)地方,不能通過(guò)product.name的方法獲取,也不能通過(guò)product.name = "name"的形式設置值。
  當Item在Spider中被搜集以后,它將會(huì )被傳遞到Item Pipeline,一些組件會(huì )根據一定的次序執行對Item的處理。
  每個(gè)item pipeline組件(有時(shí)稱(chēng)之為“Item Pipeline”)是實(shí)現了簡(jiǎn)單方式的Python類(lèi)。他們接收到Item并通過(guò)它執行一些行為,同時(shí)也決定此Item是否繼續通過(guò)pipeline,或是被遺棄而不再進(jìn)行處理。
  以下是item pipeline的一些典型應用:
  現在實(shí)現一個(gè)Item過(guò)濾器,我們把獲取下來(lái)若果是None的數據形參為0,如果Item對象是None則丟棄這條數據。
  pipeline通常是放在pipelines.py中
   def process_item(self, item, spider):
if item is not None:
if item["p_standard_price"] is None:
item["p_standard_price"] = item["p_shop_price"]
if item["p_shop_price"] is None:
item["p_shop_price"] = item["p_standard_price"]
item["p_collect_count"] = text_utils.to_int(item["p_collect_count"])
item["p_comment_count"] = text_utils.to_int(item["p_comment_count"])
item["p_month_sale_count"] = text_utils.to_int(item["p_month_sale_count"])
item["p_sale_count"] = text_utils.to_int(item["p_sale_count"])
item["p_standard_price"] = text_utils.to_string(item["p_standard_price"], "0")
item["p_shop_price"] = text_utils.to_string(item["p_shop_price"], "0")
item["p_pay_count"] = item["p_pay_count"] if item["p_pay_count"] is not "-" else "0"
return item
else:
raise DropItem("Item is None %s" % item)
  最后須要在settings.py中添加這個(gè)pipeline
  ITEM_PIPELINES = {
'TaoBao.pipelines.TTDataHandlerPipeline': 250,
'TaoBao.pipelines.MysqlPipeline': 300,
}
  后面那種數字越小,則執行的次序越靠前,這里先過(guò)濾處理數據,獲取到正確的數據后,再執行TaoBao.pipelines.MysqlPipeline添加數據到數據庫。
  完整的代碼:[不帶數據庫版本][ 數據庫版本]。
  之前說(shuō)的方法都是直接通過(guò)命令scrapy crawl tts來(lái)啟動(dòng)。怎么用IDE的調試功能呢?很簡(jiǎn)單通過(guò)main函數啟動(dòng)爬蟲(chóng):
  # 寫(xiě)到Spider里面
if __name__ == "__main__":
settings = get_project_settings()
process = CrawlerProcess(settings)
spider = TmallAndTaoBaoSpider
process.crawl(spider)
process.start()
  在獲取數據的時(shí)侯,很多時(shí)侯會(huì )碰到網(wǎng)頁(yè)重定向的問(wèn)題,scrapy會(huì )返回302之后不會(huì )手動(dòng)重定向后繼續爬取新地址,在scrapy的設置中,可以通過(guò)配置來(lái)開(kāi)啟重定向,這樣雖然域名是重定向的scrapy也會(huì )手動(dòng)到最終的地址獲取內容。
  解決方案:settings.py中添加REDIRECT_ENABLED = True
  很多時(shí)侯爬蟲(chóng)都有自定義數據,比如之前寫(xiě)的是硬碟關(guān)鍵字,現在通過(guò)參數的方法如何傳遞呢?
  解決方案:
  大部分時(shí)侯,我們可以取到完整的網(wǎng)頁(yè)信息,如果網(wǎng)頁(yè)的ajax懇求太多,網(wǎng)速很慢的時(shí)侯,selenium并不知道什么時(shí)候ajax懇求完成,這個(gè)時(shí)侯假如通過(guò)self.driver.get(response.url)獲取頁(yè)面天貓反爬蟲(chóng),然后通過(guò)Selector取數據天貓反爬蟲(chóng),很可能還沒(méi)加載完成取不到數據。
  解決方案:通過(guò)selenium提供的工具來(lái)延后獲取內容,直到獲取到數據,或者超時(shí)。

關(guān)鍵詞采集方法

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 640 次瀏覽 ? 2020-05-04 08:07 ? 來(lái)自相關(guān)話(huà)題

  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 關(guān)鍵詞采集方法本文將介紹怎樣借助【詞庫】批量挖掘并采集長(cháng)尾詞的方式,對 SEOSEM 站長(cháng) 來(lái)說(shuō)十分實(shí)用。 本來(lái)還將介紹一款免費好用的數據采集工具 【八爪魚(yú)數據采集】 , 讓站長(cháng)采集關(guān)鍵詞的工作事半功倍。長(cháng)尾詞對于站長(cháng)來(lái)說(shuō)是提升網(wǎng)站流量的核心之技能之一, 是不容忽略的一項方法, 在搜索引擎營(yíng)銷(xiāo)中對關(guān)鍵詞策略的擬定是十分重要的, 這些長(cháng)尾關(guān)鍵詞能為網(wǎng)站 貢獻很大的一部分流量,并且帶來(lái)的客人轉化率也很不錯。下面就以【詞庫】為例,教諸位站長(cháng)怎么是用【八爪魚(yú)數據采集器】批量采集關(guān) 鍵詞。采集網(wǎng)站:本文就以一組(100 個(gè) B2B 行業(yè)有指數的關(guān)鍵詞)為例,來(lái)采集關(guān)于這一組關(guān) 鍵詞的所有相關(guān)長(cháng)尾關(guān)鍵詞。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 采集的內容包括:搜索后的長(cháng)尾關(guān)鍵詞,360 指數,該長(cháng)尾關(guān)鍵詞搜索量以及搜 索量的第一位網(wǎng)站(頁(yè)面)這四個(gè)有效數組。使用功能點(diǎn):? 循環(huán)文本輸入?Xpathxpath 入門(mén)教程 1 xpath 入門(mén) 2 相對 XPATH 教程-7.0 版 ? 數字翻頁(yè)步驟 1:創(chuàng )建詞庫網(wǎng)采集任務(wù)1)進(jìn)入主界面,選擇“自定義采集”八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)將要采集的網(wǎng)址 URL 復制粘貼到網(wǎng)站輸入框中,點(diǎn)擊“保存網(wǎng)址”八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 2:創(chuàng )建循環(huán)輸入文本八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 1)打開(kāi)網(wǎng)頁(yè)以后,點(diǎn)開(kāi)右上角的流程,然后從左邊拖一個(gè)循環(huán)進(jìn)來(lái)2)點(diǎn)擊循環(huán)步驟,在它的中級選項哪里選擇文本列表,再點(diǎn)開(kāi)下邊的 A,把復 制好的關(guān)鍵詞全部粘貼進(jìn)去,注意換行,再點(diǎn)擊確定保存。
  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)創(chuàng )建好循環(huán)文本輸入后, 點(diǎn)擊頁(yè)面上的搜索框, 創(chuàng )建輸入文本的步驟, 注意, 不需要輸入任何文本即可,若是手動(dòng)生成的是在循環(huán)外邊,拖入進(jìn)去,再勾選循 環(huán)即可。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 4)右鍵選擇頁(yè)面上的搜索按鍵,設置好點(diǎn)擊元素,這樣,循環(huán)文本輸入就設置 好了,流程下方就是搜索下來(lái)的長(cháng)尾關(guān)鍵詞。步驟 3:創(chuàng )建數字翻頁(yè)1)由于該搜索結果頁(yè)面沒(méi)有下一頁(yè)按鍵,只有數字頁(yè)數,所以我們須要用到 xpath 的一些相關(guān)知識,來(lái)設置特殊的數字翻頁(yè)。首先去火狐瀏覽器里把該網(wǎng)頁(yè) 打開(kāi)并搜索相應關(guān)鍵詞后,打開(kāi)瀏覽器右上角的 firebug 工具--小瓢蟲(chóng)(不懂的 同學(xué)可以去官網(wǎng)教程看一下相應的 xpath 教程)八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)翻到頁(yè)面下方輸入關(guān)鍵詞采集文章, 找到數字位置的源碼, 可以看見(jiàn)當前頁(yè)面的數字跟其他數字, 在源碼里節點(diǎn)的屬性 class 是有所不同的八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)收 益 我 們 首 先 定 位 到 該 頁(yè) 面 的 數 字 位 置 , 手 寫(xiě) xpath : //div[@id="page"]/a[contains(@class,'current')]八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 4)再利用固定函數 following-sibling 來(lái)定位到該節點(diǎn)后的第一個(gè)同類(lèi)節點(diǎn), 注意,該函數前面接::是固定格式,a[1]是指該節點(diǎn)后的第一個(gè)同類(lèi)節點(diǎn)八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 5)可以查看翻頁(yè)后還是正常定位到下一頁(yè)的數字上,說(shuō)明該 xpath 沒(méi)有問(wèn)題6)再回到八爪魚(yú), 在兩側流程頁(yè)面拖一個(gè)循環(huán)進(jìn)來(lái), 高級選項里選擇單個(gè)元素, 并把 xpath 放入進(jìn)去,點(diǎn)確定保存好八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 7)再從左邊拖一個(gè)點(diǎn)擊元素進(jìn)來(lái),并在中級選項里勾選好循環(huán),特殊數字翻頁(yè) 循環(huán)就創(chuàng )建好了八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 4:創(chuàng )建循環(huán)列表1)我們安裝常規方式創(chuàng )建循環(huán)列表,發(fā)現,由于搜索結果后的表格中出現了這 個(gè)無(wú)用的一整行信息。
  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)于是在八爪魚(yú)上面是難以正常的創(chuàng )建好循環(huán)列表的,因為這個(gè)無(wú)用的信息導 致八爪魚(yú)手動(dòng)生成的列表會(huì )定位不準八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)所以我們還是得用到 xpath 的知識,去火狐瀏覽器上面自動(dòng)創(chuàng )建一個(gè)循環(huán)列 表的 xpath。首先定位到第一行第一列的源碼位置4)再找到每一行的源碼位置,發(fā)現她們都是 tbody 父節點(diǎn)下相同的 tr 標簽八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 5)再觀(guān)察每一行真正的 tr 節點(diǎn)里都有一個(gè)共同的屬性“id”,并且 id 屬性都 有 一 個(gè) 共 同 的 tr 值 , 所 以 我 們 以 此 為 共 同 點(diǎn) ,手 寫(xiě) 該 xpath:.//tbody/tr[contains(@id,'tr')]輸入關(guān)鍵詞采集文章,來(lái)定位到所有的 tr 節點(diǎn),并把所有無(wú) 用的 tr 給過(guò)濾掉,這樣,循環(huán)列表的 xpath 就創(chuàng )建好了八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 6)再從左邊拖一個(gè)循環(huán)進(jìn)去,循環(huán)形式選擇不固定元素,把該 xpath 放入八爪 魚(yú)里,并以第一個(gè)循環(huán)為例,設置相應的采集字段(由于部份數組源碼里是沒(méi)有 的,所以采集不到),八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 5:?jiǎn)?dòng)采集八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 1)點(diǎn)擊保存任務(wù)后,運行采集,以本地采集為例2)采集完成后,會(huì )跳出提示,選擇“導出數據”。
  選擇“合適的導入方法”, 將采集好的數據導入。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 本文來(lái)自于:相關(guān)采集教程:京東商品信息采集(通過(guò)搜索關(guān)鍵詞) 阿里巴巴關(guān)鍵詞采集: 八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 愛(ài)站關(guān)鍵詞采集: 百度相關(guān)搜索關(guān)鍵詞采集: 亞馬遜關(guān)鍵詞采集: 易迅關(guān)鍵詞采集: 新浪微博關(guān)鍵詞采集: 關(guān)鍵詞提取八爪魚(yú)——90 萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。 1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機,任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。 查看全部

  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 關(guān)鍵詞采集方法本文將介紹怎樣借助【詞庫】批量挖掘并采集長(cháng)尾詞的方式,對 SEOSEM 站長(cháng) 來(lái)說(shuō)十分實(shí)用。 本來(lái)還將介紹一款免費好用的數據采集工具 【八爪魚(yú)數據采集】 , 讓站長(cháng)采集關(guān)鍵詞的工作事半功倍。長(cháng)尾詞對于站長(cháng)來(lái)說(shuō)是提升網(wǎng)站流量的核心之技能之一, 是不容忽略的一項方法, 在搜索引擎營(yíng)銷(xiāo)中對關(guān)鍵詞策略的擬定是十分重要的, 這些長(cháng)尾關(guān)鍵詞能為網(wǎng)站 貢獻很大的一部分流量,并且帶來(lái)的客人轉化率也很不錯。下面就以【詞庫】為例,教諸位站長(cháng)怎么是用【八爪魚(yú)數據采集器】批量采集關(guān) 鍵詞。采集網(wǎng)站:本文就以一組(100 個(gè) B2B 行業(yè)有指數的關(guān)鍵詞)為例,來(lái)采集關(guān)于這一組關(guān) 鍵詞的所有相關(guān)長(cháng)尾關(guān)鍵詞。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 采集的內容包括:搜索后的長(cháng)尾關(guān)鍵詞,360 指數,該長(cháng)尾關(guān)鍵詞搜索量以及搜 索量的第一位網(wǎng)站(頁(yè)面)這四個(gè)有效數組。使用功能點(diǎn):? 循環(huán)文本輸入?Xpathxpath 入門(mén)教程 1 xpath 入門(mén) 2 相對 XPATH 教程-7.0 版 ? 數字翻頁(yè)步驟 1:創(chuàng )建詞庫網(wǎng)采集任務(wù)1)進(jìn)入主界面,選擇“自定義采集”八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)將要采集的網(wǎng)址 URL 復制粘貼到網(wǎng)站輸入框中,點(diǎn)擊“保存網(wǎng)址”八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 2:創(chuàng )建循環(huán)輸入文本八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 1)打開(kāi)網(wǎng)頁(yè)以后,點(diǎn)開(kāi)右上角的流程,然后從左邊拖一個(gè)循環(huán)進(jìn)來(lái)2)點(diǎn)擊循環(huán)步驟,在它的中級選項哪里選擇文本列表,再點(diǎn)開(kāi)下邊的 A,把復 制好的關(guān)鍵詞全部粘貼進(jìn)去,注意換行,再點(diǎn)擊確定保存。
  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)創(chuàng )建好循環(huán)文本輸入后, 點(diǎn)擊頁(yè)面上的搜索框, 創(chuàng )建輸入文本的步驟, 注意, 不需要輸入任何文本即可,若是手動(dòng)生成的是在循環(huán)外邊,拖入進(jìn)去,再勾選循 環(huán)即可。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 4)右鍵選擇頁(yè)面上的搜索按鍵,設置好點(diǎn)擊元素,這樣,循環(huán)文本輸入就設置 好了,流程下方就是搜索下來(lái)的長(cháng)尾關(guān)鍵詞。步驟 3:創(chuàng )建數字翻頁(yè)1)由于該搜索結果頁(yè)面沒(méi)有下一頁(yè)按鍵,只有數字頁(yè)數,所以我們須要用到 xpath 的一些相關(guān)知識,來(lái)設置特殊的數字翻頁(yè)。首先去火狐瀏覽器里把該網(wǎng)頁(yè) 打開(kāi)并搜索相應關(guān)鍵詞后,打開(kāi)瀏覽器右上角的 firebug 工具--小瓢蟲(chóng)(不懂的 同學(xué)可以去官網(wǎng)教程看一下相應的 xpath 教程)八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)翻到頁(yè)面下方輸入關(guān)鍵詞采集文章, 找到數字位置的源碼, 可以看見(jiàn)當前頁(yè)面的數字跟其他數字, 在源碼里節點(diǎn)的屬性 class 是有所不同的八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)收 益 我 們 首 先 定 位 到 該 頁(yè) 面 的 數 字 位 置 , 手 寫(xiě) xpath : //div[@id="page"]/a[contains(@class,'current')]八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 4)再利用固定函數 following-sibling 來(lái)定位到該節點(diǎn)后的第一個(gè)同類(lèi)節點(diǎn), 注意,該函數前面接::是固定格式,a[1]是指該節點(diǎn)后的第一個(gè)同類(lèi)節點(diǎn)八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 5)可以查看翻頁(yè)后還是正常定位到下一頁(yè)的數字上,說(shuō)明該 xpath 沒(méi)有問(wèn)題6)再回到八爪魚(yú), 在兩側流程頁(yè)面拖一個(gè)循環(huán)進(jìn)來(lái), 高級選項里選擇單個(gè)元素, 并把 xpath 放入進(jìn)去,點(diǎn)確定保存好八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 7)再從左邊拖一個(gè)點(diǎn)擊元素進(jìn)來(lái),并在中級選項里勾選好循環(huán),特殊數字翻頁(yè) 循環(huán)就創(chuàng )建好了八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 4:創(chuàng )建循環(huán)列表1)我們安裝常規方式創(chuàng )建循環(huán)列表,發(fā)現,由于搜索結果后的表格中出現了這 個(gè)無(wú)用的一整行信息。
  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)于是在八爪魚(yú)上面是難以正常的創(chuàng )建好循環(huán)列表的,因為這個(gè)無(wú)用的信息導 致八爪魚(yú)手動(dòng)生成的列表會(huì )定位不準八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)所以我們還是得用到 xpath 的知識,去火狐瀏覽器上面自動(dòng)創(chuàng )建一個(gè)循環(huán)列 表的 xpath。首先定位到第一行第一列的源碼位置4)再找到每一行的源碼位置,發(fā)現她們都是 tbody 父節點(diǎn)下相同的 tr 標簽八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 5)再觀(guān)察每一行真正的 tr 節點(diǎn)里都有一個(gè)共同的屬性“id”,并且 id 屬性都 有 一 個(gè) 共 同 的 tr 值 , 所 以 我 們 以 此 為 共 同 點(diǎn) ,手 寫(xiě) 該 xpath:.//tbody/tr[contains(@id,'tr')]輸入關(guān)鍵詞采集文章,來(lái)定位到所有的 tr 節點(diǎn),并把所有無(wú) 用的 tr 給過(guò)濾掉,這樣,循環(huán)列表的 xpath 就創(chuàng )建好了八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 6)再從左邊拖一個(gè)循環(huán)進(jìn)去,循環(huán)形式選擇不固定元素,把該 xpath 放入八爪 魚(yú)里,并以第一個(gè)循環(huán)為例,設置相應的采集字段(由于部份數組源碼里是沒(méi)有 的,所以采集不到),八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 5:?jiǎn)?dòng)采集八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 1)點(diǎn)擊保存任務(wù)后,運行采集,以本地采集為例2)采集完成后,會(huì )跳出提示,選擇“導出數據”。
  選擇“合適的導入方法”, 將采集好的數據導入。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 本文來(lái)自于:相關(guān)采集教程:京東商品信息采集(通過(guò)搜索關(guān)鍵詞) 阿里巴巴關(guān)鍵詞采集: 八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 愛(ài)站關(guān)鍵詞采集: 百度相關(guān)搜索關(guān)鍵詞采集: 亞馬遜關(guān)鍵詞采集: 易迅關(guān)鍵詞采集: 新浪微博關(guān)鍵詞采集: 關(guān)鍵詞提取八爪魚(yú)——90 萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。 1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機,任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。

Python手動(dòng)搜索關(guān)鍵詞采集信息—以易迅為例!

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 640 次瀏覽 ? 2020-08-03 10:55 ? 來(lái)自相關(guān)話(huà)題

  Python數據剖析之numpy字段全解析一、操作步驟
  如果網(wǎng)頁(yè)上有搜索框,但是搜索結果頁(yè)面沒(méi)有獨立網(wǎng)址,想要采集搜索結果,直接做規則是采集不到的,要先做連續動(dòng)作(輸入+點(diǎn)擊)來(lái)實(shí)現手動(dòng)輸入關(guān)鍵詞并搜索,然后才會(huì )采集數據。下面用易迅搜索為例,演示手動(dòng)搜索采集,操作步驟如下:
  Python資源共享群:626017123
  
  二、案例規則+操作步驟
  注意:本案例易迅搜索是有獨立網(wǎng)址的,對于具有獨立網(wǎng)址的頁(yè)面,最簡(jiǎn)單的方式就是構造出每位關(guān)鍵詞的搜索網(wǎng)址,然后把線(xiàn)索網(wǎng)址導出到規則里,就可以批量采集,而不是設置連續動(dòng)作
  第一步:定義第一級規則
  
  1.1打開(kāi)集搜客網(wǎng)絡(luò )爬蟲(chóng),輸入網(wǎng)址并Enter,加載出網(wǎng)頁(yè)后再點(diǎn)擊“定義規則”按鈕,看到一個(gè)浮窗顯示下來(lái),稱(chēng)為工作臺,在前面定義規則;
  注意:這里的截圖和文字說(shuō)明都是集搜客網(wǎng)絡(luò )爬蟲(chóng)版本,如果您安裝的是傲游插件版,那么就沒(méi)有“定義規則”按鈕,而是應當運行MS謀數臺
  1.2在工作臺北輸入一級規則的主題名,再點(diǎn)擊“查重”,提示“該名可以使用”或“該名已被占用,可編輯:是”,就可以使用這個(gè)主題名,否則請重命名。
  
  1.3本級規則主要是設置連續動(dòng)作,所以,整理箱可以隨便抓取一個(gè)信息,用來(lái)給爬蟲(chóng)判定是否執行采集。雙擊網(wǎng)頁(yè)上的信息,輸入標簽名,并打勾確認,再勾上關(guān)鍵內容,首次標明還要輸入整理箱的名子,然后就完成標明映射了。
  Tips:為了能確切定位網(wǎng)頁(yè)信息,點(diǎn)擊定義規則會(huì )把整個(gè)網(wǎng)頁(yè)定格住,不能跳轉網(wǎng)頁(yè)鏈接,再次點(diǎn)擊定義規則,才會(huì )恢復回普通的網(wǎng)頁(yè)模式。
  第二步:定義連續動(dòng)作
  點(diǎn)擊工作臺的“連續動(dòng)作”頁(yè)簽,點(diǎn)擊新建按鍵構建一個(gè)新動(dòng)作,每個(gè)動(dòng)作的設置方式都是一樣,基本操作如下:
  
  2.1 ,輸入目標主題名
  這里的目標主題名是填第二級主題名,點(diǎn)擊“誰(shuí)在用”查看目標主題名是否可用,如果早已被占用,換一個(gè)主題名就行
  2.2, 創(chuàng )建第一個(gè)動(dòng)作:輸入
  新建一個(gè)動(dòng)作,并選擇動(dòng)作類(lèi)型為輸入。
  
  2.2.1,填寫(xiě)定位表達式
  首先鍵盤(pán)單擊輸入框,定位輸入框的節點(diǎn),然后點(diǎn)擊“自動(dòng)生成XPath”按鈕,可以選擇“偏好id”或者“偏好class”,就可以得到輸入框的xpath表達式,再點(diǎn)擊“搜索”按鈕,檢查一下這個(gè)xpath是否能惟一定位到輸入框,沒(méi)有問(wèn)題就把xpath復制到定位表達式方框里。
  注意:定位表達式里的xpath是要鎖定動(dòng)作對象的整個(gè)有效操作范圍,具體就是指鍵盤(pán)就能點(diǎn)擊或輸入成功的網(wǎng)頁(yè)模塊,不要定位到最底層的text()節點(diǎn)。
  2.2.2,輸入關(guān)鍵詞
  輸入關(guān)鍵詞填寫(xiě)你想搜索的關(guān)鍵詞,可以輸入一個(gè)關(guān)鍵詞,也可以輸入多個(gè)關(guān)鍵詞,輸入多個(gè)關(guān)鍵詞要用雙分號;;將每位關(guān)鍵詞隔開(kāi),免費版只支持5個(gè)以?xún)鹊年P(guān)鍵詞,旗艦版可以使用連發(fā)彈倉功能,支持1萬(wàn)以?xún)鹊年P(guān)鍵詞
  2.2.3,輸入動(dòng)作名稱(chēng)
  告訴自己這一步動(dòng)作是拿來(lái)干嘛的,方便之后更改。
  2.3,創(chuàng )建第二個(gè)動(dòng)作:點(diǎn)擊
  
  參考2.2的操作,創(chuàng )建第二個(gè)動(dòng)作,選擇類(lèi)型為點(diǎn)擊,定位到搜索按鍵,然后手動(dòng)生成xpath,檢驗是否鎖定到惟一節點(diǎn),沒(méi)問(wèn)題的話(huà)填到定位表達式里就行了。
  2.4,存規則
  點(diǎn)擊“存規則”按鈕保存已完成的第一級規則
  第三步:定義第二級規則
  3.1,新建規則
  創(chuàng )建第二級規則,點(diǎn)擊“定義規則”恢復到普通網(wǎng)頁(yè)模式,輸入關(guān)鍵詞搜索出結果后,再次點(diǎn)擊“定義規則”切換到做規則模式,點(diǎn)擊左上角“規則”菜單->“新建”,輸入主題名,這里的主題名就是第一級規則的連續動(dòng)作里填寫(xiě)的目標主題名。
  3.2,標注想要采集的信息
  
  3.2.1,標注網(wǎng)頁(yè)上想要采集的信息,這里是對商品名稱(chēng)和價(jià)位做標明,因為標明只對文本信息有效,商品詳情的鏈接是屬性節點(diǎn)@href,所以,不能對鏈接做這樣的直觀(guān)標明,而要做內容映射,具體看下邊的操作。
  3.2.2,點(diǎn)擊商品名稱(chēng),下面的DOM節點(diǎn)定位到A標簽,展開(kāi)A標簽下的attributes節點(diǎn),就可以找到代表網(wǎng)址的@href節點(diǎn),右擊節點(diǎn),選擇“新建抓取內容“,輸入一個(gè)名子,一般給這個(gè)抓取內容起一個(gè)和地址有關(guān)的名子,比如“下級網(wǎng)址“,或者”下級鏈接“等等。然后在工作臺上,看到這個(gè)抓取內容有了。如果還要步入商品詳情頁(yè)采集,就要對著(zhù)這個(gè)抓取內容勾選下級線(xiàn)索關(guān)鍵詞自動(dòng)采集,做層級抓取。
  3.2.3,設置“關(guān)鍵內容”選項,這樣爬蟲(chóng)就能判別出采集規則是否合適。在整理箱里選一個(gè)網(wǎng)頁(yè)上必然能采到的標簽關(guān)鍵詞自動(dòng)采集,勾上“關(guān)鍵內容”。這里選擇的是“名稱(chēng)”做為“關(guān)鍵內容”。
  3.2.4,前面只對一個(gè)商品做標明,也才能得到一個(gè)商品信息,如果想把一整頁(yè)上每一個(gè)商品都采集下來(lái),可以做樣例復制,不懂的請參考基礎教程《采集列表數據》
  3.3,設置翻頁(yè)路線(xiàn)
  
  在爬蟲(chóng)路線(xiàn)設置翻頁(yè),這里用的是記號線(xiàn)索,不懂的請參考基礎教程《設置翻頁(yè)采集》
  3.4,存規則
  點(diǎn)擊“測試”,檢查信息完整性。不完整的話(huà),重新標明就可以覆蓋之前的內容。檢查沒(méi)問(wèn)題后點(diǎn)擊“存規則”。
  第四步:抓數據
  
  4.1,連續動(dòng)作是連續執行的,所以只要運行第一級主題,第二級主題不用運行。打開(kāi)DS打數機,搜索出第一級主題名,點(diǎn)擊“單搜”或“集搜”,此時(shí)可以看見(jiàn)瀏覽器窗口里會(huì )手動(dòng)輸入關(guān)鍵詞而且搜索,然后調用第二級主題手動(dòng)采集搜索結果。
  4.2,第一級主題沒(méi)采到有意義的信息,所以,我們只看第二級主題的文件夾,就能看見(jiàn)采集的搜索結果數據,并且搜索的關(guān)鍵詞是默認記錄在xml文件的actionvalue數組中,這樣才能一一對應上去。 查看全部

  Python數據剖析之numpy字段全解析一、操作步驟
  如果網(wǎng)頁(yè)上有搜索框,但是搜索結果頁(yè)面沒(méi)有獨立網(wǎng)址,想要采集搜索結果,直接做規則是采集不到的,要先做連續動(dòng)作(輸入+點(diǎn)擊)來(lái)實(shí)現手動(dòng)輸入關(guān)鍵詞并搜索,然后才會(huì )采集數據。下面用易迅搜索為例,演示手動(dòng)搜索采集,操作步驟如下:
  Python資源共享群:626017123
  
  二、案例規則+操作步驟
  注意:本案例易迅搜索是有獨立網(wǎng)址的,對于具有獨立網(wǎng)址的頁(yè)面,最簡(jiǎn)單的方式就是構造出每位關(guān)鍵詞的搜索網(wǎng)址,然后把線(xiàn)索網(wǎng)址導出到規則里,就可以批量采集,而不是設置連續動(dòng)作
  第一步:定義第一級規則
  
  1.1打開(kāi)集搜客網(wǎng)絡(luò )爬蟲(chóng),輸入網(wǎng)址并Enter,加載出網(wǎng)頁(yè)后再點(diǎn)擊“定義規則”按鈕,看到一個(gè)浮窗顯示下來(lái),稱(chēng)為工作臺,在前面定義規則;
  注意:這里的截圖和文字說(shuō)明都是集搜客網(wǎng)絡(luò )爬蟲(chóng)版本,如果您安裝的是傲游插件版,那么就沒(méi)有“定義規則”按鈕,而是應當運行MS謀數臺
  1.2在工作臺北輸入一級規則的主題名,再點(diǎn)擊“查重”,提示“該名可以使用”或“該名已被占用,可編輯:是”,就可以使用這個(gè)主題名,否則請重命名。
  
  1.3本級規則主要是設置連續動(dòng)作,所以,整理箱可以隨便抓取一個(gè)信息,用來(lái)給爬蟲(chóng)判定是否執行采集。雙擊網(wǎng)頁(yè)上的信息,輸入標簽名,并打勾確認,再勾上關(guān)鍵內容,首次標明還要輸入整理箱的名子,然后就完成標明映射了。
  Tips:為了能確切定位網(wǎng)頁(yè)信息,點(diǎn)擊定義規則會(huì )把整個(gè)網(wǎng)頁(yè)定格住,不能跳轉網(wǎng)頁(yè)鏈接,再次點(diǎn)擊定義規則,才會(huì )恢復回普通的網(wǎng)頁(yè)模式。
  第二步:定義連續動(dòng)作
  點(diǎn)擊工作臺的“連續動(dòng)作”頁(yè)簽,點(diǎn)擊新建按鍵構建一個(gè)新動(dòng)作,每個(gè)動(dòng)作的設置方式都是一樣,基本操作如下:
  
  2.1 ,輸入目標主題名
  這里的目標主題名是填第二級主題名,點(diǎn)擊“誰(shuí)在用”查看目標主題名是否可用,如果早已被占用,換一個(gè)主題名就行
  2.2, 創(chuàng )建第一個(gè)動(dòng)作:輸入
  新建一個(gè)動(dòng)作,并選擇動(dòng)作類(lèi)型為輸入。
  
  2.2.1,填寫(xiě)定位表達式
  首先鍵盤(pán)單擊輸入框,定位輸入框的節點(diǎn),然后點(diǎn)擊“自動(dòng)生成XPath”按鈕,可以選擇“偏好id”或者“偏好class”,就可以得到輸入框的xpath表達式,再點(diǎn)擊“搜索”按鈕,檢查一下這個(gè)xpath是否能惟一定位到輸入框,沒(méi)有問(wèn)題就把xpath復制到定位表達式方框里。
  注意:定位表達式里的xpath是要鎖定動(dòng)作對象的整個(gè)有效操作范圍,具體就是指鍵盤(pán)就能點(diǎn)擊或輸入成功的網(wǎng)頁(yè)模塊,不要定位到最底層的text()節點(diǎn)。
  2.2.2,輸入關(guān)鍵詞
  輸入關(guān)鍵詞填寫(xiě)你想搜索的關(guān)鍵詞,可以輸入一個(gè)關(guān)鍵詞,也可以輸入多個(gè)關(guān)鍵詞,輸入多個(gè)關(guān)鍵詞要用雙分號;;將每位關(guān)鍵詞隔開(kāi),免費版只支持5個(gè)以?xún)鹊年P(guān)鍵詞,旗艦版可以使用連發(fā)彈倉功能,支持1萬(wàn)以?xún)鹊年P(guān)鍵詞
  2.2.3,輸入動(dòng)作名稱(chēng)
  告訴自己這一步動(dòng)作是拿來(lái)干嘛的,方便之后更改。
  2.3,創(chuàng )建第二個(gè)動(dòng)作:點(diǎn)擊
  
  參考2.2的操作,創(chuàng )建第二個(gè)動(dòng)作,選擇類(lèi)型為點(diǎn)擊,定位到搜索按鍵,然后手動(dòng)生成xpath,檢驗是否鎖定到惟一節點(diǎn),沒(méi)問(wèn)題的話(huà)填到定位表達式里就行了。
  2.4,存規則
  點(diǎn)擊“存規則”按鈕保存已完成的第一級規則
  第三步:定義第二級規則
  3.1,新建規則
  創(chuàng )建第二級規則,點(diǎn)擊“定義規則”恢復到普通網(wǎng)頁(yè)模式,輸入關(guān)鍵詞搜索出結果后,再次點(diǎn)擊“定義規則”切換到做規則模式,點(diǎn)擊左上角“規則”菜單->“新建”,輸入主題名,這里的主題名就是第一級規則的連續動(dòng)作里填寫(xiě)的目標主題名。
  3.2,標注想要采集的信息
  
  3.2.1,標注網(wǎng)頁(yè)上想要采集的信息,這里是對商品名稱(chēng)和價(jià)位做標明,因為標明只對文本信息有效,商品詳情的鏈接是屬性節點(diǎn)@href,所以,不能對鏈接做這樣的直觀(guān)標明,而要做內容映射,具體看下邊的操作。
  3.2.2,點(diǎn)擊商品名稱(chēng),下面的DOM節點(diǎn)定位到A標簽,展開(kāi)A標簽下的attributes節點(diǎn),就可以找到代表網(wǎng)址的@href節點(diǎn),右擊節點(diǎn),選擇“新建抓取內容“,輸入一個(gè)名子,一般給這個(gè)抓取內容起一個(gè)和地址有關(guān)的名子,比如“下級網(wǎng)址“,或者”下級鏈接“等等。然后在工作臺上,看到這個(gè)抓取內容有了。如果還要步入商品詳情頁(yè)采集,就要對著(zhù)這個(gè)抓取內容勾選下級線(xiàn)索關(guān)鍵詞自動(dòng)采集,做層級抓取。
  3.2.3,設置“關(guān)鍵內容”選項,這樣爬蟲(chóng)就能判別出采集規則是否合適。在整理箱里選一個(gè)網(wǎng)頁(yè)上必然能采到的標簽關(guān)鍵詞自動(dòng)采集,勾上“關(guān)鍵內容”。這里選擇的是“名稱(chēng)”做為“關(guān)鍵內容”。
  3.2.4,前面只對一個(gè)商品做標明,也才能得到一個(gè)商品信息,如果想把一整頁(yè)上每一個(gè)商品都采集下來(lái),可以做樣例復制,不懂的請參考基礎教程《采集列表數據》
  3.3,設置翻頁(yè)路線(xiàn)
  
  在爬蟲(chóng)路線(xiàn)設置翻頁(yè),這里用的是記號線(xiàn)索,不懂的請參考基礎教程《設置翻頁(yè)采集》
  3.4,存規則
  點(diǎn)擊“測試”,檢查信息完整性。不完整的話(huà),重新標明就可以覆蓋之前的內容。檢查沒(méi)問(wèn)題后點(diǎn)擊“存規則”。
  第四步:抓數據
  
  4.1,連續動(dòng)作是連續執行的,所以只要運行第一級主題,第二級主題不用運行。打開(kāi)DS打數機,搜索出第一級主題名,點(diǎn)擊“單搜”或“集搜”,此時(shí)可以看見(jiàn)瀏覽器窗口里會(huì )手動(dòng)輸入關(guān)鍵詞而且搜索,然后調用第二級主題手動(dòng)采集搜索結果。
  4.2,第一級主題沒(méi)采到有意義的信息,所以,我們只看第二級主題的文件夾,就能看見(jiàn)采集的搜索結果數據,并且搜索的關(guān)鍵詞是默認記錄在xml文件的actionvalue數組中,這樣才能一一對應上去。

R爬蟲(chóng)之上市公司公告批量下載

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 360 次瀏覽 ? 2020-06-03 08:01 ? 來(lái)自相關(guān)話(huà)題

  
  2017-4-13 17:46|發(fā)布者: 煉數成金_小數|查看: 22744|評論: 1|原作者: 黃耀鵬|來(lái)自: R語(yǔ)言英文社區
  摘要: Selenium是一個(gè)用于測試網(wǎng)頁(yè)應用的開(kāi)源軟件。它提供了瀏覽器中的點(diǎn)擊,滾動(dòng),滑動(dòng),及文字輸入等驅動(dòng)程序。這樣,利用Selenium即可以通過(guò)腳本程序來(lái)代替人工進(jìn)行測試一個(gè)開(kāi)發(fā)軟件的各類(lèi)功能。在處理爬蟲(chóng)任務(wù)中,經(jīng)常 ...
  tm
  Python
  測試
  案例
  開(kāi)源軟件
  函數
  selenium的安裝及使用介紹
  Selenium是一個(gè)用于測試網(wǎng)頁(yè)應用的開(kāi)源軟件。它提供了瀏覽器中的點(diǎn)擊r軟件爬蟲(chóng),滾動(dòng),滑動(dòng)r軟件爬蟲(chóng),及文字輸入等驅動(dòng)程序。這樣,利用Selenium即可以通過(guò)腳本程序來(lái)代替人工進(jìn)行測試一個(gè)開(kāi)發(fā)軟件的各類(lèi)功能。
  在處理爬蟲(chóng)任務(wù)中,經(jīng)常碰到須要輸入文字,進(jìn)行下拉菜單選擇,以及滑鼠點(diǎn)擊等情境。這個(gè)時(shí)侯,selenium就派上大用場(chǎng)了。
  下面,我們先介紹一下Selenium的使用環(huán)境配置,接著(zhù)介紹怎樣通過(guò)R的拓展包Rwebdriver來(lái)使用Selenium,最后,展示一個(gè)爬蟲(chóng)案例應用。
  安裝配置
  安裝jre:
  下載地址:#win
  配置jre環(huán)境變量
  下載selenium,并放至指定位置
  下載地址:
  啟動(dòng)selenium
  打開(kāi)命令提示符
  進(jìn)入selenium所在路徑
  啟動(dòng)selenium
  cd "C:\Program Files (x86)\Rwebdriver"
  java -jar selenium-server-standalone-2.49.0.jar
  ### selenium接口函數介紹
  『Automated Data Collection with R』一書(shū)的作者開(kāi)發(fā)了R包Rwebdriver,用于聯(lián)接啟用selenium。
  該R包重要的函數如下:
  
  更多細節請參考:
  -『Automated Data Collection with R』第9章P253-P259
  Selenium with Python
  網(wǎng)頁(yè)開(kāi)發(fā)工具的使用介紹
 ?。ㄊ謩?dòng)演示)
  
  XML提取器相關(guān)函數的使用
  xpathSApply(doc,path,fun = NULL)
  可傳入的fun如下:
  
  案例演示——爬取上海證券交易所上市公司公告信息
  #### packages we need ####
  ## ----------------------------------------------------------------------- ##
  require(stringr)
  require(XML)
  require(RCurl)
  library(Rwebdriver)
  # set path
  setwd("ListedCompanyAnnouncement")
  # base url
  BaseUrl<-"http://www.sse.com.cn/disclosu ... ot%3B
  #start a session
  quit_session()
  start_session(root = "http://localhost:4444/wd/hub/",browser = "firefox")
  # post Base Url
  post.url(url = BaseUrl)
  # get xpath
  StockCodeField<-element_xpath_find(value = '//*[@id="inputCode"]')
  ClassificationField<-element_xpath_find(value = '/html/body/div[7]/div[2]/div[2]/div[2]/div/div/div/div/div[2]/div[1]/div[3]/div/button')
  StartDateField<-element_xpath_find(value = '//*[@id="start_date"]')
  EndDateField<-element_xpath_find(value = '//*[@id="end_date"]')
  SearchField<-element_xpath_find(value = '//*[@id="btnQuery"]')
  # fill stock code
  StockCode<-"600000"
  element_click(StockCodeField)
  keys(StockCode)
  Sys.sleep(2)
  #fill classification field
  element_click(ClassificationField)
  # get announcement xpath
  RegularAnnouncement<-element_xpath_find(value = '/html/body/div[7]/div[2]/div[2]/div[2]/div/div/div/div/div[2]/div[1]/div[3]/div/div/ul/li[2]')
  Sys.sleep(2)
  element_click(RegularAnnouncement)
  # #fill start and end date
  # element_click(StartDateField)
  # today's xpath
  EndToday<-element_xpath_find(value = '/html/body/div[13]/div[3]/table/tfoot/tr/th')
  Sys.sleep(2)
  element_click(EndDateField)
  Sys.sleep(2)
  element_click(EndToday)
  #click search
  element_click(SearchField)
  ###################################
  ####獲得所有文件的link ##
  all_links<-character() 查看全部

  
  2017-4-13 17:46|發(fā)布者: 煉數成金_小數|查看: 22744|評論: 1|原作者: 黃耀鵬|來(lái)自: R語(yǔ)言英文社區
  摘要: Selenium是一個(gè)用于測試網(wǎng)頁(yè)應用的開(kāi)源軟件。它提供了瀏覽器中的點(diǎn)擊,滾動(dòng),滑動(dòng),及文字輸入等驅動(dòng)程序。這樣,利用Selenium即可以通過(guò)腳本程序來(lái)代替人工進(jìn)行測試一個(gè)開(kāi)發(fā)軟件的各類(lèi)功能。在處理爬蟲(chóng)任務(wù)中,經(jīng)常 ...
  tm
  Python
  測試
  案例
  開(kāi)源軟件
  函數
  selenium的安裝及使用介紹
  Selenium是一個(gè)用于測試網(wǎng)頁(yè)應用的開(kāi)源軟件。它提供了瀏覽器中的點(diǎn)擊r軟件爬蟲(chóng),滾動(dòng),滑動(dòng)r軟件爬蟲(chóng),及文字輸入等驅動(dòng)程序。這樣,利用Selenium即可以通過(guò)腳本程序來(lái)代替人工進(jìn)行測試一個(gè)開(kāi)發(fā)軟件的各類(lèi)功能。
  在處理爬蟲(chóng)任務(wù)中,經(jīng)常碰到須要輸入文字,進(jìn)行下拉菜單選擇,以及滑鼠點(diǎn)擊等情境。這個(gè)時(shí)侯,selenium就派上大用場(chǎng)了。
  下面,我們先介紹一下Selenium的使用環(huán)境配置,接著(zhù)介紹怎樣通過(guò)R的拓展包Rwebdriver來(lái)使用Selenium,最后,展示一個(gè)爬蟲(chóng)案例應用。
  安裝配置
  安裝jre:
  下載地址:#win
  配置jre環(huán)境變量
  下載selenium,并放至指定位置
  下載地址:
  啟動(dòng)selenium
  打開(kāi)命令提示符
  進(jìn)入selenium所在路徑
  啟動(dòng)selenium
  cd "C:\Program Files (x86)\Rwebdriver"
  java -jar selenium-server-standalone-2.49.0.jar
  ### selenium接口函數介紹
  『Automated Data Collection with R』一書(shū)的作者開(kāi)發(fā)了R包Rwebdriver,用于聯(lián)接啟用selenium。
  該R包重要的函數如下:
  
  更多細節請參考:
  -『Automated Data Collection with R』第9章P253-P259
  Selenium with Python
  網(wǎng)頁(yè)開(kāi)發(fā)工具的使用介紹
 ?。ㄊ謩?dòng)演示)
  
  XML提取器相關(guān)函數的使用
  xpathSApply(doc,path,fun = NULL)
  可傳入的fun如下:
  
  案例演示——爬取上海證券交易所上市公司公告信息
  #### packages we need ####
  ## ----------------------------------------------------------------------- ##
  require(stringr)
  require(XML)
  require(RCurl)
  library(Rwebdriver)
  # set path
  setwd("ListedCompanyAnnouncement")
  # base url
  BaseUrl<-"http://www.sse.com.cn/disclosu ... ot%3B
  #start a session
  quit_session()
  start_session(root = "http://localhost:4444/wd/hub/",browser = "firefox")
  # post Base Url
  post.url(url = BaseUrl)
  # get xpath
  StockCodeField<-element_xpath_find(value = '//*[@id="inputCode"]')
  ClassificationField<-element_xpath_find(value = '/html/body/div[7]/div[2]/div[2]/div[2]/div/div/div/div/div[2]/div[1]/div[3]/div/button')
  StartDateField<-element_xpath_find(value = '//*[@id="start_date"]')
  EndDateField<-element_xpath_find(value = '//*[@id="end_date"]')
  SearchField<-element_xpath_find(value = '//*[@id="btnQuery"]')
  # fill stock code
  StockCode<-"600000"
  element_click(StockCodeField)
  keys(StockCode)
  Sys.sleep(2)
  #fill classification field
  element_click(ClassificationField)
  # get announcement xpath
  RegularAnnouncement<-element_xpath_find(value = '/html/body/div[7]/div[2]/div[2]/div[2]/div/div/div/div/div[2]/div[1]/div[3]/div/div/ul/li[2]')
  Sys.sleep(2)
  element_click(RegularAnnouncement)
  # #fill start and end date
  # element_click(StartDateField)
  # today's xpath
  EndToday<-element_xpath_find(value = '/html/body/div[13]/div[3]/table/tfoot/tr/th')
  Sys.sleep(2)
  element_click(EndDateField)
  Sys.sleep(2)
  element_click(EndToday)
  #click search
  element_click(SearchField)
  ###################################
  ####獲得所有文件的link ##
  all_links<-character()

百度搜索結果爬蟲(chóng)實(shí)現方式

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 328 次瀏覽 ? 2020-05-12 08:03 ? 來(lái)自相關(guān)話(huà)題

  
  八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)實(shí)現方式做 SEO 做流量的朋友,很多百度搜索數據都須要自己去抓取,大家就會(huì )選擇用 八爪魚(yú)爬蟲(chóng)工具進(jìn)行百度搜索結果的數據采集,大批量又高效。如何配置百度搜 索的采集任務(wù)呢,接下來(lái)本文將介紹使用八爪魚(yú)采集百度搜索結果的方式。采集網(wǎng)站:使用功能點(diǎn):? 分頁(yè)列表信息采集 ? Xpath ? AJAX 點(diǎn)擊和翻頁(yè)步驟 1:創(chuàng )建采集任務(wù)1)進(jìn)入主界面,選擇“自定義模式”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 12)將要采集的網(wǎng)址復制粘貼到網(wǎng)站輸入框中,點(diǎn)擊“保存網(wǎng)址”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 2步驟 2:輸入文本1)在頁(yè)面右上角,打開(kāi)“流程”,以突顯出“流程設計器”和“定制當前操作” 兩個(gè)藍籌股。點(diǎn)擊搜索框,在操作提示框中,選擇“輸入文字”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 32)輸入要采集的文本,這里以輸入“八爪魚(yú)采集器”為例。完成后,點(diǎn)擊“確 定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 43)輸入的文本手動(dòng)填充到搜索框后,點(diǎn)擊“百度一下”按鈕。在操作提示框中, 選擇“點(diǎn)擊該按鍵”百度搜索結果爬蟲(chóng)方式圖 5此步驟涉及 Ajax 技術(shù)。
  打開(kāi)“高級選項”,勾選“Ajax 加載數據”,設置時(shí)間 為“2 秒”。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 6步驟 3:創(chuàng )建翻頁(yè)循環(huán)1)將頁(yè)面下拉到頂部,點(diǎn)擊“下一頁(yè)”按鈕,在兩側的操作提示框中,選擇“循 環(huán)點(diǎn)擊下一頁(yè)”,以完善一個(gè)翻頁(yè)循環(huán)八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 72)選中“循環(huán)翻頁(yè)”步驟,打開(kāi)“高級選項”,將單個(gè)元素中的這條 Xpath: //A[@class='n',復制粘貼到火狐瀏覽器中的相應位置八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 8可以看見(jiàn),當在第 1 頁(yè)的時(shí)侯,使用此條 Xpath,可以定位到“下一頁(yè)”百度搜索結果爬蟲(chóng)方式圖 9八爪魚(yú)·云采集服務(wù)平臺 當翻到第 2 頁(yè)的時(shí)侯,使用此條 Xpath,既可定位到“上一頁(yè)”,又可定位到 “下一頁(yè)”百度搜索結果爬蟲(chóng)方式圖 103)返回八爪魚(yú)采集器,點(diǎn)擊“自定義”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 114)勾選“元素文本=下一頁(yè)>”百度爬蟲(chóng),對應生成的 Xpath 為://A[@text()='下一 頁(yè)']。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 125)將修改后的 Xpath://A[@text()='下一頁(yè)'],再次復制粘貼到火狐瀏覽器 中。
  可以看見(jiàn),當翻到第 2 頁(yè)的時(shí)侯,可正常定位到“下一頁(yè)”,第 3、4、5、 6 等也可正常定位到“下一頁(yè)”,翻頁(yè)循環(huán)可正常運行八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 13步驟 4:創(chuàng )建列表循環(huán)并提取數據1)移動(dòng)滑鼠,選中頁(yè)面里第一條搜索結果的區塊,再選中頁(yè)面內另一條搜索結 果的區塊。系統會(huì )手動(dòng)辨識并選中,頁(yè)面里其他搜索結果的區塊,以完善一個(gè)列 表循環(huán)。在操作提示框中,選擇“采集以下元素文本”。整個(gè)區塊里的信息,作 為一個(gè)數組,被采集下來(lái)八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 142)選中“循環(huán)”步驟,打開(kāi)“高級選項”,將不固定元素列表中的這條 Xpath: //DIV[@id='content_left']/DIV,復制粘貼到火狐瀏覽器中的相應位置八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 153)將八爪魚(yú)中的 Xpath,復制到火狐瀏覽器中的相應位置。觀(guān)察頁(yè)面,我們不 需要采集的“相關(guān)搜索”和“廣告”內容也被定位了八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 164 ) 觀(guān) 察 網(wǎng) 頁(yè) 源 碼 , 我 們 要 采 集 的 區 塊 , 具 有 相 同 的 tpl 屬 性 , tpl="se_com_default"(如圖紅框中所示),通過(guò) tpl 屬性,可即將采集的縣 塊與不需要采集的廣告、推薦內容分辨開(kāi)來(lái)。
  將 Xpath 修改為: //DIV[@id='content_left']/DIV[@tpl="se_com_default"]。再觀(guān)察頁(yè)面, 要采集的內容都被定位了,不需要采集的廣告、推薦內容未被定位八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 175)將修改后的 Xpath: //DIV[@id='content_left']/DIV[@tpl="se_com_default"], 復制粘貼到八 爪蝦采集器的相應位置。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 186)在這里,我們還想采集每條搜索結果的鏈接 URL。選中頁(yè)面內一條搜索結果 的鏈接,在操作提示框中,選擇“采集該鏈接地址”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 197)字段選擇完成后,選中相應的數組,可以進(jìn)行數組的自定義命名。完成后, 點(diǎn)擊左上角的“保存并啟動(dòng)”,選擇“啟動(dòng)本地采集”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 20步驟 5:數據采集及導入1)采集完成后,會(huì )跳出提示,選擇“導出數據”。選擇“合適的導入方法”, 將采集好的數據導入八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 212)這里我們選擇 excel 作為導入為格式,數據導入后如下圖百度搜索結果爬蟲(chóng)方式圖 22八爪魚(yú)·云采集服務(wù)平臺 相關(guān)采集教程: 百度爬蟲(chóng) 百度地圖店家采集工具 百度地圖數據采集 百度搜索結果抓取和采集詳細教程 使用八爪魚(yú) v7.0 簡(jiǎn)易模式采集百度百科內容 百度地圖店家地址采集 百度文庫數據采集方法,以列表頁(yè)為例 百度貼吧內容采集 百度相關(guān)搜索關(guān)鍵詞采集 百度知道問(wèn)答采集八爪魚(yú)·云采集服務(wù)平臺 http://www.bazhuayu.com/tutorial/bdzhidaocj八爪魚(yú)——百萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。
   1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。 2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機百度爬蟲(chóng),任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。 查看全部

  
  八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)實(shí)現方式做 SEO 做流量的朋友,很多百度搜索數據都須要自己去抓取,大家就會(huì )選擇用 八爪魚(yú)爬蟲(chóng)工具進(jìn)行百度搜索結果的數據采集,大批量又高效。如何配置百度搜 索的采集任務(wù)呢,接下來(lái)本文將介紹使用八爪魚(yú)采集百度搜索結果的方式。采集網(wǎng)站:使用功能點(diǎn):? 分頁(yè)列表信息采集 ? Xpath ? AJAX 點(diǎn)擊和翻頁(yè)步驟 1:創(chuàng )建采集任務(wù)1)進(jìn)入主界面,選擇“自定義模式”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 12)將要采集的網(wǎng)址復制粘貼到網(wǎng)站輸入框中,點(diǎn)擊“保存網(wǎng)址”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 2步驟 2:輸入文本1)在頁(yè)面右上角,打開(kāi)“流程”,以突顯出“流程設計器”和“定制當前操作” 兩個(gè)藍籌股。點(diǎn)擊搜索框,在操作提示框中,選擇“輸入文字”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 32)輸入要采集的文本,這里以輸入“八爪魚(yú)采集器”為例。完成后,點(diǎn)擊“確 定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 43)輸入的文本手動(dòng)填充到搜索框后,點(diǎn)擊“百度一下”按鈕。在操作提示框中, 選擇“點(diǎn)擊該按鍵”百度搜索結果爬蟲(chóng)方式圖 5此步驟涉及 Ajax 技術(shù)。
  打開(kāi)“高級選項”,勾選“Ajax 加載數據”,設置時(shí)間 為“2 秒”。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 6步驟 3:創(chuàng )建翻頁(yè)循環(huán)1)將頁(yè)面下拉到頂部,點(diǎn)擊“下一頁(yè)”按鈕,在兩側的操作提示框中,選擇“循 環(huán)點(diǎn)擊下一頁(yè)”,以完善一個(gè)翻頁(yè)循環(huán)八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 72)選中“循環(huán)翻頁(yè)”步驟,打開(kāi)“高級選項”,將單個(gè)元素中的這條 Xpath: //A[@class='n',復制粘貼到火狐瀏覽器中的相應位置八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 8可以看見(jiàn),當在第 1 頁(yè)的時(shí)侯,使用此條 Xpath,可以定位到“下一頁(yè)”百度搜索結果爬蟲(chóng)方式圖 9八爪魚(yú)·云采集服務(wù)平臺 當翻到第 2 頁(yè)的時(shí)侯,使用此條 Xpath,既可定位到“上一頁(yè)”,又可定位到 “下一頁(yè)”百度搜索結果爬蟲(chóng)方式圖 103)返回八爪魚(yú)采集器,點(diǎn)擊“自定義”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 114)勾選“元素文本=下一頁(yè)>”百度爬蟲(chóng),對應生成的 Xpath 為://A[@text()='下一 頁(yè)']。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 125)將修改后的 Xpath://A[@text()='下一頁(yè)'],再次復制粘貼到火狐瀏覽器 中。
  可以看見(jiàn),當翻到第 2 頁(yè)的時(shí)侯,可正常定位到“下一頁(yè)”,第 3、4、5、 6 等也可正常定位到“下一頁(yè)”,翻頁(yè)循環(huán)可正常運行八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 13步驟 4:創(chuàng )建列表循環(huán)并提取數據1)移動(dòng)滑鼠,選中頁(yè)面里第一條搜索結果的區塊,再選中頁(yè)面內另一條搜索結 果的區塊。系統會(huì )手動(dòng)辨識并選中,頁(yè)面里其他搜索結果的區塊,以完善一個(gè)列 表循環(huán)。在操作提示框中,選擇“采集以下元素文本”。整個(gè)區塊里的信息,作 為一個(gè)數組,被采集下來(lái)八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 142)選中“循環(huán)”步驟,打開(kāi)“高級選項”,將不固定元素列表中的這條 Xpath: //DIV[@id='content_left']/DIV,復制粘貼到火狐瀏覽器中的相應位置八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 153)將八爪魚(yú)中的 Xpath,復制到火狐瀏覽器中的相應位置。觀(guān)察頁(yè)面,我們不 需要采集的“相關(guān)搜索”和“廣告”內容也被定位了八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 164 ) 觀(guān) 察 網(wǎng) 頁(yè) 源 碼 , 我 們 要 采 集 的 區 塊 , 具 有 相 同 的 tpl 屬 性 , tpl="se_com_default"(如圖紅框中所示),通過(guò) tpl 屬性,可即將采集的縣 塊與不需要采集的廣告、推薦內容分辨開(kāi)來(lái)。
  將 Xpath 修改為: //DIV[@id='content_left']/DIV[@tpl="se_com_default"]。再觀(guān)察頁(yè)面, 要采集的內容都被定位了,不需要采集的廣告、推薦內容未被定位八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 175)將修改后的 Xpath: //DIV[@id='content_left']/DIV[@tpl="se_com_default"], 復制粘貼到八 爪蝦采集器的相應位置。完成后,點(diǎn)擊“確定”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 186)在這里,我們還想采集每條搜索結果的鏈接 URL。選中頁(yè)面內一條搜索結果 的鏈接,在操作提示框中,選擇“采集該鏈接地址”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 197)字段選擇完成后,選中相應的數組,可以進(jìn)行數組的自定義命名。完成后, 點(diǎn)擊左上角的“保存并啟動(dòng)”,選擇“啟動(dòng)本地采集”八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 20步驟 5:數據采集及導入1)采集完成后,會(huì )跳出提示,選擇“導出數據”。選擇“合適的導入方法”, 將采集好的數據導入八爪魚(yú)·云采集服務(wù)平臺 百度搜索結果爬蟲(chóng)方式圖 212)這里我們選擇 excel 作為導入為格式,數據導入后如下圖百度搜索結果爬蟲(chóng)方式圖 22八爪魚(yú)·云采集服務(wù)平臺 相關(guān)采集教程: 百度爬蟲(chóng) 百度地圖店家采集工具 百度地圖數據采集 百度搜索結果抓取和采集詳細教程 使用八爪魚(yú) v7.0 簡(jiǎn)易模式采集百度百科內容 百度地圖店家地址采集 百度文庫數據采集方法,以列表頁(yè)為例 百度貼吧內容采集 百度相關(guān)搜索關(guān)鍵詞采集 百度知道問(wèn)答采集八爪魚(yú)·云采集服務(wù)平臺 http://www.bazhuayu.com/tutorial/bdzhidaocj八爪魚(yú)——百萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。
   1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。 2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機百度爬蟲(chóng),任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。

Python網(wǎng)絡(luò )爬蟲(chóng)四大選擇器(正則表達式、BS4、Xpath、CSS)總結

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 453 次瀏覽 ? 2020-05-12 08:01 ? 來(lái)自相關(guān)話(huà)題

  前幾天小編連續寫(xiě)了四篇關(guān)于Python選擇器的文章,分別用正則表達式、BeautifulSoup、Xpath、CSS選擇器分別抓取京東網(wǎng)的商品信息。今天小編來(lái)給你們總結一下這四個(gè)選擇器,讓你們愈發(fā)深刻的理解和熟悉Python選擇器。
  一、正則表達式
  正則表達式為我們提供了抓取數據的快捷方法。雖然該正則表達式更容易適應未來(lái)變化網(wǎng)絡(luò )爬蟲(chóng) 正則表達式,但又存在無(wú)法構造、可讀性差的問(wèn)題。當在爬京東網(wǎng)的時(shí)侯,正則表達式如下圖所示:
  
  利用正則表達式實(shí)現對目標信息的精準采集
  此外 ,我們都曉得,網(wǎng)頁(yè)經(jīng)常會(huì )形成變更,導致網(wǎng)頁(yè)中會(huì )發(fā)生一些微小的布局變化時(shí),此時(shí)也會(huì )促使之前寫(xiě)好的正則表達式未能滿(mǎn)足需求,而且還不太好調試。當須要匹配的內容有很多的時(shí)侯,使用正則表達式提取目標信息會(huì )導致程序運行的速率減緩,需要消耗更多顯存。
  二、BeautifulSoup
  BeautifulSoup是一個(gè)十分流行的 Pyhon 模塊。該模塊可以解析網(wǎng)頁(yè),并提供定位內容的方便插口。通過(guò)'pip install beautifulsoup4'就可以實(shí)現該模塊的安裝了。
  
  利用美麗的湯去提取目標信息
  使用 BeautifulSoup的第一步是將己下載的 HTML 內容解析為 soup文檔。由 于大多數網(wǎng)頁(yè)都不具備良好的HTML 格式,因此BeautifulSoup須要對實(shí)際格式進(jìn)行確定。BeautifulSoup才能正確解析缺位的冒號并閉合標簽,此外都會(huì )添加<html >和<body>標簽讓其成為完整的HTML文檔。通常使用find() 和find_all()方法來(lái)定位我們須要的元素。
  如果你想了解BeautifulSoup全部方式和參數,可以查閱BeautifulSoup的官方文檔。雖然BeautifulSoup在代碼的理解上比正則表達式要復雜一些,但是其愈發(fā)容易構造和理解。
  三、Lxml
  Lxml模塊使用 C語(yǔ)言編撰,其解析速率比 BeautiflSoup更快,而且其安裝過(guò)程也更為復雜,在此小編就不贅言啦。XPath 使用路徑表達式在 XML 文檔中選定節點(diǎn)。節點(diǎn)是通過(guò)順著(zhù)路徑或則 step 來(lái)選定的。
  
  Xpath選擇器
  使用 lxml 模塊的第一步和BeautifulSoup一樣,也是將有可能不合法的HTML 解析為 統一格式。 雖然Lxml可以正確解析屬性?xún)蛇吶蔽坏拿疤柧W(wǎng)絡(luò )爬蟲(chóng) 正則表達式,并閉合標簽,不過(guò)該模塊沒(méi)有額外添加<html >和<body>標簽 。
  在線(xiàn)復制Xpath表達式可以很方便的復制Xpath表達式。但是通過(guò)該方式得到的Xpath表達式置于程序中通常不能用,而且長(cháng)的無(wú)法看。所以Xpath表達式通常還是要自己親自上手。
  四、CSS
  CSS選擇器表示選擇元素所使用 的模式。BeautifulSoup整合了CSS選擇器的句型和自身便捷使用API。在網(wǎng)路爬蟲(chóng)的開(kāi)發(fā)過(guò)程中,對于熟悉CSS選擇器句型的人,使用CSS選擇器是個(gè)十分便捷的方式。
  
  CSS選擇器
  下面是一些常用的選擇器示例。 查看全部

  前幾天小編連續寫(xiě)了四篇關(guān)于Python選擇器的文章,分別用正則表達式、BeautifulSoup、Xpath、CSS選擇器分別抓取京東網(wǎng)的商品信息。今天小編來(lái)給你們總結一下這四個(gè)選擇器,讓你們愈發(fā)深刻的理解和熟悉Python選擇器。
  一、正則表達式
  正則表達式為我們提供了抓取數據的快捷方法。雖然該正則表達式更容易適應未來(lái)變化網(wǎng)絡(luò )爬蟲(chóng) 正則表達式,但又存在無(wú)法構造、可讀性差的問(wèn)題。當在爬京東網(wǎng)的時(shí)侯,正則表達式如下圖所示:
  
  利用正則表達式實(shí)現對目標信息的精準采集
  此外 ,我們都曉得,網(wǎng)頁(yè)經(jīng)常會(huì )形成變更,導致網(wǎng)頁(yè)中會(huì )發(fā)生一些微小的布局變化時(shí),此時(shí)也會(huì )促使之前寫(xiě)好的正則表達式未能滿(mǎn)足需求,而且還不太好調試。當須要匹配的內容有很多的時(shí)侯,使用正則表達式提取目標信息會(huì )導致程序運行的速率減緩,需要消耗更多顯存。
  二、BeautifulSoup
  BeautifulSoup是一個(gè)十分流行的 Pyhon 模塊。該模塊可以解析網(wǎng)頁(yè),并提供定位內容的方便插口。通過(guò)'pip install beautifulsoup4'就可以實(shí)現該模塊的安裝了。
  
  利用美麗的湯去提取目標信息
  使用 BeautifulSoup的第一步是將己下載的 HTML 內容解析為 soup文檔。由 于大多數網(wǎng)頁(yè)都不具備良好的HTML 格式,因此BeautifulSoup須要對實(shí)際格式進(jìn)行確定。BeautifulSoup才能正確解析缺位的冒號并閉合標簽,此外都會(huì )添加<html >和<body>標簽讓其成為完整的HTML文檔。通常使用find() 和find_all()方法來(lái)定位我們須要的元素。
  如果你想了解BeautifulSoup全部方式和參數,可以查閱BeautifulSoup的官方文檔。雖然BeautifulSoup在代碼的理解上比正則表達式要復雜一些,但是其愈發(fā)容易構造和理解。
  三、Lxml
  Lxml模塊使用 C語(yǔ)言編撰,其解析速率比 BeautiflSoup更快,而且其安裝過(guò)程也更為復雜,在此小編就不贅言啦。XPath 使用路徑表達式在 XML 文檔中選定節點(diǎn)。節點(diǎn)是通過(guò)順著(zhù)路徑或則 step 來(lái)選定的。
  
  Xpath選擇器
  使用 lxml 模塊的第一步和BeautifulSoup一樣,也是將有可能不合法的HTML 解析為 統一格式。 雖然Lxml可以正確解析屬性?xún)蛇吶蔽坏拿疤柧W(wǎng)絡(luò )爬蟲(chóng) 正則表達式,并閉合標簽,不過(guò)該模塊沒(méi)有額外添加<html >和<body>標簽 。
  在線(xiàn)復制Xpath表達式可以很方便的復制Xpath表達式。但是通過(guò)該方式得到的Xpath表達式置于程序中通常不能用,而且長(cháng)的無(wú)法看。所以Xpath表達式通常還是要自己親自上手。
  四、CSS
  CSS選擇器表示選擇元素所使用 的模式。BeautifulSoup整合了CSS選擇器的句型和自身便捷使用API。在網(wǎng)路爬蟲(chóng)的開(kāi)發(fā)過(guò)程中,對于熟悉CSS選擇器句型的人,使用CSS選擇器是個(gè)十分便捷的方式。
  
  CSS選擇器
  下面是一些常用的選擇器示例。

Scrapy爬蟲(chóng)框架:抓取天貓淘寶數據

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 400 次瀏覽 ? 2020-05-05 08:05 ? 來(lái)自相關(guān)話(huà)題

  有了前兩篇的基礎,接下來(lái)通過(guò)抓取天貓和淘寶的數據來(lái)詳盡說(shuō)明,如何通過(guò)Scrapy爬取想要的內容。完整的代碼:[不帶數據庫版本][ 數據庫版本]。
  通過(guò)天貓的搜索,獲取搜索下來(lái)的每件商品的銷(xiāo)量、收藏數、價(jià)格。
  所以,最終的目的是通過(guò)獲取兩個(gè)頁(yè)面的內容,一個(gè)是搜索結果,從上面找下來(lái)每一個(gè)商品的詳盡地址,然后第二個(gè)是商品詳盡內容,從上面獲取到銷(xiāo)量、價(jià)格等。
  有了思路如今我們先下載搜索結果頁(yè)面,然后再下載頁(yè)面中每一項詳盡信息頁(yè)面。
   def _parse_handler(self, response):
''' 下載頁(yè)面 """
self.driver.get(response.url)
pass
  很簡(jiǎn)單,通過(guò)self.driver.get(response.url)就能使用selenium下載內容,如果直接使用response中的網(wǎng)頁(yè)內容是靜態(tài)的。
  上面說(shuō)了怎樣下載內容,當我們下載好內容后,需要從上面去獲取我們想要的有用信息,這里就要用到選擇器,選擇器構造方法比較多,只介紹一種,這里看詳盡信息:
  >>> body = '<html><body><span>good</span></body></html>'
>>> Selector(text=body).xpath('//span/text()').extract()
[u'good']
  這樣就通過(guò)xpath取下來(lái)了good這個(gè)詞組,更詳盡的xpath教程點(diǎn)擊這兒。
  Selector 提供了好多形式出了xpath,還有css選擇器,正則表達式,中文教程看這個(gè),具體內容就不多說(shuō),只須要曉得這樣可以快速獲取我們須要的內容。
  簡(jiǎn)單的介紹了如何獲取內容后,現在我們從第一個(gè)搜索結果中獲取我們想要的商品詳盡鏈接,通過(guò)查看網(wǎng)頁(yè)源代碼可以看見(jiàn),商品的鏈接在這里:
  ...
<p class="title">
<a class="J_ClickStat" data-nid="523242229702" href="//detail.tmall.com/item.htm?spm=a230r.1.14.46.Mnbjq5&id=523242229702&ns=1&abbucket=14" target="_blank" trace="msrp_auction" traceidx="5" trace-pid="" data-spm-anchor-id="a230r.1.14.46">WD/西部數據 WD30EZRZ臺式機3T電腦<span class="H">硬盤(pán)</span> 西數藍盤(pán)3TB 替綠盤(pán)</a>
</p>
...
  使用之前的規則來(lái)獲取到a元素的href屬性就是須要的內容:
  selector = Selector(text=self.driver.page_source) # 這里不要省略text因為省略后Selector使用的是另外一個(gè)構造函數,self.driver.page_source是這個(gè)網(wǎng)頁(yè)的html內容
selector.css(".title").css(".J_ClickStat").xpath("./@href").extract()
  簡(jiǎn)單說(shuō)一下,這里通過(guò)css工具取了class叫title的p元素,然后又獲取了class是J_ClickStat的a元素,最后通過(guò)xpath規則獲取a元素的href中的內容。啰嗦一句css中若果是取id則應當是selector.css("#title"),這個(gè)和css中的選擇器是一致的。
  同理,我們獲取到商品詳情后,以獲取銷(xiāo)量為例,查看源代碼:
  <ul class="tm-ind-panel">
<li class="tm-ind-item tm-ind-sellCount" data-label="月銷(xiāo)量"><div class="tm-indcon"><span class="tm-label">月銷(xiāo)量</span><span class="tm-count">881</span></div></li>
<li class="tm-ind-item tm-ind-reviewCount canClick tm-line3" id="J_ItemRates"><div class="tm-indcon"><span class="tm-label">累計評價(jià)</span><span class="tm-count">4593</span></div></li>
<li class="tm-ind-item tm-ind-emPointCount" data-spm="1000988"><div class="tm-indcon"><a href="//vip.tmall.com/vip/index.htm" target="_blank"><span class="tm-label">送天貓積分</span><span class="tm-count">55</span></a></div></li>
</ul>
  獲取月銷(xiāo)量:
  selector.css(".tm-ind-sellCount").xpath("./div/span[@class='tm-count']/text()").extract_first()
  獲取累計評價(jià):
  selector.css(".tm-ind-reviewCount").xpath("./div[@class='tm-indcon']/span[@class='tm-count']/text()").extract_first()
  最后把獲取下來(lái)的數據包裝成Item返回。淘寶或則淘寶她們的頁(yè)面內容不一樣,所以規則也不同,需要分開(kāi)去獲取想要的內容。
  Item是scrapy中獲取下來(lái)的結果,后面可以處理這種結果。
  Item通常是放在items.py中
  import scrapy
class Product(scrapy.Item):
name = scrapy.Field()
price = scrapy.Field()
stock = scrapy.Field()
last_updated = scrapy.Field(serializer=str)
  >>> product = Product(name='Desktop PC', price=1000)
>>> print product
Product(name='Desktop PC', price=1000)
  >>> product['name']
Desktop PC
>>> product.get('name')
Desktop PC
>>> product['price']
1000
>>> product['last_updated']
Traceback (most recent call last):
...
KeyError: 'last_updated'
>>> product.get('last_updated', 'not set')
not set
>>> product['lala'] # getting unknown field
Traceback (most recent call last):
...
KeyError: 'lala'
>>> product.get('lala', 'unknown field')
'unknown field'
>>> 'name' in product # is name field populated?
True
>>> 'last_updated' in product # is last_updated populated?
False
>>> 'last_updated' in product.fields # is last_updated a declared field?
True
>>> 'lala' in product.fields # is lala a declared field?
False
  >>> product['last_updated'] = 'today'
>>> product['last_updated']
today
>>> product['lala'] = 'test' # setting unknown field
Traceback (most recent call last):
...
KeyError: 'Product does not support field: lala'
  這里只須要注意一個(gè)地方,不能通過(guò)product.name的方法獲取,也不能通過(guò)product.name = "name"的形式設置值。
  當Item在Spider中被搜集以后,它將會(huì )被傳遞到Item Pipeline,一些組件會(huì )根據一定的次序執行對Item的處理。
  每個(gè)item pipeline組件(有時(shí)稱(chēng)之為“Item Pipeline”)是實(shí)現了簡(jiǎn)單方式的Python類(lèi)。他們接收到Item并通過(guò)它執行一些行為,同時(shí)也決定此Item是否繼續通過(guò)pipeline,或是被遺棄而不再進(jìn)行處理。
  以下是item pipeline的一些典型應用:
  現在實(shí)現一個(gè)Item過(guò)濾器,我們把獲取下來(lái)若果是None的數據形參為0,如果Item對象是None則丟棄這條數據。
  pipeline通常是放在pipelines.py中
   def process_item(self, item, spider):
if item is not None:
if item["p_standard_price"] is None:
item["p_standard_price"] = item["p_shop_price"]
if item["p_shop_price"] is None:
item["p_shop_price"] = item["p_standard_price"]
item["p_collect_count"] = text_utils.to_int(item["p_collect_count"])
item["p_comment_count"] = text_utils.to_int(item["p_comment_count"])
item["p_month_sale_count"] = text_utils.to_int(item["p_month_sale_count"])
item["p_sale_count"] = text_utils.to_int(item["p_sale_count"])
item["p_standard_price"] = text_utils.to_string(item["p_standard_price"], "0")
item["p_shop_price"] = text_utils.to_string(item["p_shop_price"], "0")
item["p_pay_count"] = item["p_pay_count"] if item["p_pay_count"] is not "-" else "0"
return item
else:
raise DropItem("Item is None %s" % item)
  最后須要在settings.py中添加這個(gè)pipeline
  ITEM_PIPELINES = {
'TaoBao.pipelines.TTDataHandlerPipeline': 250,
'TaoBao.pipelines.MysqlPipeline': 300,
}
  后面那種數字越小,則執行的次序越靠前,這里先過(guò)濾處理數據,獲取到正確的數據后,再執行TaoBao.pipelines.MysqlPipeline添加數據到數據庫。
  完整的代碼:[不帶數據庫版本][ 數據庫版本]。
  之前說(shuō)的方法都是直接通過(guò)命令scrapy crawl tts來(lái)啟動(dòng)。怎么用IDE的調試功能呢?很簡(jiǎn)單通過(guò)main函數啟動(dòng)爬蟲(chóng):
  # 寫(xiě)到Spider里面
if __name__ == "__main__":
settings = get_project_settings()
process = CrawlerProcess(settings)
spider = TmallAndTaoBaoSpider
process.crawl(spider)
process.start()
  在獲取數據的時(shí)侯,很多時(shí)侯會(huì )碰到網(wǎng)頁(yè)重定向的問(wèn)題,scrapy會(huì )返回302之后不會(huì )手動(dòng)重定向后繼續爬取新地址,在scrapy的設置中,可以通過(guò)配置來(lái)開(kāi)啟重定向,這樣雖然域名是重定向的scrapy也會(huì )手動(dòng)到最終的地址獲取內容。
  解決方案:settings.py中添加REDIRECT_ENABLED = True
  很多時(shí)侯爬蟲(chóng)都有自定義數據,比如之前寫(xiě)的是硬碟關(guān)鍵字,現在通過(guò)參數的方法如何傳遞呢?
  解決方案:
  大部分時(shí)侯,我們可以取到完整的網(wǎng)頁(yè)信息,如果網(wǎng)頁(yè)的ajax懇求太多,網(wǎng)速很慢的時(shí)侯,selenium并不知道什么時(shí)候ajax懇求完成,這個(gè)時(shí)侯假如通過(guò)self.driver.get(response.url)獲取頁(yè)面天貓反爬蟲(chóng),然后通過(guò)Selector取數據天貓反爬蟲(chóng),很可能還沒(méi)加載完成取不到數據。
  解決方案:通過(guò)selenium提供的工具來(lái)延后獲取內容,直到獲取到數據,或者超時(shí)。 查看全部

  有了前兩篇的基礎,接下來(lái)通過(guò)抓取天貓和淘寶的數據來(lái)詳盡說(shuō)明,如何通過(guò)Scrapy爬取想要的內容。完整的代碼:[不帶數據庫版本][ 數據庫版本]。
  通過(guò)天貓的搜索,獲取搜索下來(lái)的每件商品的銷(xiāo)量、收藏數、價(jià)格。
  所以,最終的目的是通過(guò)獲取兩個(gè)頁(yè)面的內容,一個(gè)是搜索結果,從上面找下來(lái)每一個(gè)商品的詳盡地址,然后第二個(gè)是商品詳盡內容,從上面獲取到銷(xiāo)量、價(jià)格等。
  有了思路如今我們先下載搜索結果頁(yè)面,然后再下載頁(yè)面中每一項詳盡信息頁(yè)面。
   def _parse_handler(self, response):
''' 下載頁(yè)面 """
self.driver.get(response.url)
pass
  很簡(jiǎn)單,通過(guò)self.driver.get(response.url)就能使用selenium下載內容,如果直接使用response中的網(wǎng)頁(yè)內容是靜態(tài)的。
  上面說(shuō)了怎樣下載內容,當我們下載好內容后,需要從上面去獲取我們想要的有用信息,這里就要用到選擇器,選擇器構造方法比較多,只介紹一種,這里看詳盡信息:
  >>> body = '<html><body><span>good</span></body></html>'
>>> Selector(text=body).xpath('//span/text()').extract()
[u'good']
  這樣就通過(guò)xpath取下來(lái)了good這個(gè)詞組,更詳盡的xpath教程點(diǎn)擊這兒。
  Selector 提供了好多形式出了xpath,還有css選擇器,正則表達式,中文教程看這個(gè),具體內容就不多說(shuō),只須要曉得這樣可以快速獲取我們須要的內容。
  簡(jiǎn)單的介紹了如何獲取內容后,現在我們從第一個(gè)搜索結果中獲取我們想要的商品詳盡鏈接,通過(guò)查看網(wǎng)頁(yè)源代碼可以看見(jiàn),商品的鏈接在這里:
  ...
<p class="title">
<a class="J_ClickStat" data-nid="523242229702" href="//detail.tmall.com/item.htm?spm=a230r.1.14.46.Mnbjq5&id=523242229702&ns=1&abbucket=14" target="_blank" trace="msrp_auction" traceidx="5" trace-pid="" data-spm-anchor-id="a230r.1.14.46">WD/西部數據 WD30EZRZ臺式機3T電腦<span class="H">硬盤(pán)</span> 西數藍盤(pán)3TB 替綠盤(pán)</a>
</p>
...
  使用之前的規則來(lái)獲取到a元素的href屬性就是須要的內容:
  selector = Selector(text=self.driver.page_source) # 這里不要省略text因為省略后Selector使用的是另外一個(gè)構造函數,self.driver.page_source是這個(gè)網(wǎng)頁(yè)的html內容
selector.css(".title").css(".J_ClickStat").xpath("./@href").extract()
  簡(jiǎn)單說(shuō)一下,這里通過(guò)css工具取了class叫title的p元素,然后又獲取了class是J_ClickStat的a元素,最后通過(guò)xpath規則獲取a元素的href中的內容。啰嗦一句css中若果是取id則應當是selector.css("#title"),這個(gè)和css中的選擇器是一致的。
  同理,我們獲取到商品詳情后,以獲取銷(xiāo)量為例,查看源代碼:
  <ul class="tm-ind-panel">
<li class="tm-ind-item tm-ind-sellCount" data-label="月銷(xiāo)量"><div class="tm-indcon"><span class="tm-label">月銷(xiāo)量</span><span class="tm-count">881</span></div></li>
<li class="tm-ind-item tm-ind-reviewCount canClick tm-line3" id="J_ItemRates"><div class="tm-indcon"><span class="tm-label">累計評價(jià)</span><span class="tm-count">4593</span></div></li>
<li class="tm-ind-item tm-ind-emPointCount" data-spm="1000988"><div class="tm-indcon"><a href="//vip.tmall.com/vip/index.htm" target="_blank"><span class="tm-label">送天貓積分</span><span class="tm-count">55</span></a></div></li>
</ul>
  獲取月銷(xiāo)量:
  selector.css(".tm-ind-sellCount").xpath("./div/span[@class='tm-count']/text()").extract_first()
  獲取累計評價(jià):
  selector.css(".tm-ind-reviewCount").xpath("./div[@class='tm-indcon']/span[@class='tm-count']/text()").extract_first()
  最后把獲取下來(lái)的數據包裝成Item返回。淘寶或則淘寶她們的頁(yè)面內容不一樣,所以規則也不同,需要分開(kāi)去獲取想要的內容。
  Item是scrapy中獲取下來(lái)的結果,后面可以處理這種結果。
  Item通常是放在items.py中
  import scrapy
class Product(scrapy.Item):
name = scrapy.Field()
price = scrapy.Field()
stock = scrapy.Field()
last_updated = scrapy.Field(serializer=str)
  >>> product = Product(name='Desktop PC', price=1000)
>>> print product
Product(name='Desktop PC', price=1000)
  >>> product['name']
Desktop PC
>>> product.get('name')
Desktop PC
>>> product['price']
1000
>>> product['last_updated']
Traceback (most recent call last):
...
KeyError: 'last_updated'
>>> product.get('last_updated', 'not set')
not set
>>> product['lala'] # getting unknown field
Traceback (most recent call last):
...
KeyError: 'lala'
>>> product.get('lala', 'unknown field')
'unknown field'
>>> 'name' in product # is name field populated?
True
>>> 'last_updated' in product # is last_updated populated?
False
>>> 'last_updated' in product.fields # is last_updated a declared field?
True
>>> 'lala' in product.fields # is lala a declared field?
False
  >>> product['last_updated'] = 'today'
>>> product['last_updated']
today
>>> product['lala'] = 'test' # setting unknown field
Traceback (most recent call last):
...
KeyError: 'Product does not support field: lala'
  這里只須要注意一個(gè)地方,不能通過(guò)product.name的方法獲取,也不能通過(guò)product.name = "name"的形式設置值。
  當Item在Spider中被搜集以后,它將會(huì )被傳遞到Item Pipeline,一些組件會(huì )根據一定的次序執行對Item的處理。
  每個(gè)item pipeline組件(有時(shí)稱(chēng)之為“Item Pipeline”)是實(shí)現了簡(jiǎn)單方式的Python類(lèi)。他們接收到Item并通過(guò)它執行一些行為,同時(shí)也決定此Item是否繼續通過(guò)pipeline,或是被遺棄而不再進(jìn)行處理。
  以下是item pipeline的一些典型應用:
  現在實(shí)現一個(gè)Item過(guò)濾器,我們把獲取下來(lái)若果是None的數據形參為0,如果Item對象是None則丟棄這條數據。
  pipeline通常是放在pipelines.py中
   def process_item(self, item, spider):
if item is not None:
if item["p_standard_price"] is None:
item["p_standard_price"] = item["p_shop_price"]
if item["p_shop_price"] is None:
item["p_shop_price"] = item["p_standard_price"]
item["p_collect_count"] = text_utils.to_int(item["p_collect_count"])
item["p_comment_count"] = text_utils.to_int(item["p_comment_count"])
item["p_month_sale_count"] = text_utils.to_int(item["p_month_sale_count"])
item["p_sale_count"] = text_utils.to_int(item["p_sale_count"])
item["p_standard_price"] = text_utils.to_string(item["p_standard_price"], "0")
item["p_shop_price"] = text_utils.to_string(item["p_shop_price"], "0")
item["p_pay_count"] = item["p_pay_count"] if item["p_pay_count"] is not "-" else "0"
return item
else:
raise DropItem("Item is None %s" % item)
  最后須要在settings.py中添加這個(gè)pipeline
  ITEM_PIPELINES = {
'TaoBao.pipelines.TTDataHandlerPipeline': 250,
'TaoBao.pipelines.MysqlPipeline': 300,
}
  后面那種數字越小,則執行的次序越靠前,這里先過(guò)濾處理數據,獲取到正確的數據后,再執行TaoBao.pipelines.MysqlPipeline添加數據到數據庫。
  完整的代碼:[不帶數據庫版本][ 數據庫版本]。
  之前說(shuō)的方法都是直接通過(guò)命令scrapy crawl tts來(lái)啟動(dòng)。怎么用IDE的調試功能呢?很簡(jiǎn)單通過(guò)main函數啟動(dòng)爬蟲(chóng):
  # 寫(xiě)到Spider里面
if __name__ == "__main__":
settings = get_project_settings()
process = CrawlerProcess(settings)
spider = TmallAndTaoBaoSpider
process.crawl(spider)
process.start()
  在獲取數據的時(shí)侯,很多時(shí)侯會(huì )碰到網(wǎng)頁(yè)重定向的問(wèn)題,scrapy會(huì )返回302之后不會(huì )手動(dòng)重定向后繼續爬取新地址,在scrapy的設置中,可以通過(guò)配置來(lái)開(kāi)啟重定向,這樣雖然域名是重定向的scrapy也會(huì )手動(dòng)到最終的地址獲取內容。
  解決方案:settings.py中添加REDIRECT_ENABLED = True
  很多時(shí)侯爬蟲(chóng)都有自定義數據,比如之前寫(xiě)的是硬碟關(guān)鍵字,現在通過(guò)參數的方法如何傳遞呢?
  解決方案:
  大部分時(shí)侯,我們可以取到完整的網(wǎng)頁(yè)信息,如果網(wǎng)頁(yè)的ajax懇求太多,網(wǎng)速很慢的時(shí)侯,selenium并不知道什么時(shí)候ajax懇求完成,這個(gè)時(shí)侯假如通過(guò)self.driver.get(response.url)獲取頁(yè)面天貓反爬蟲(chóng),然后通過(guò)Selector取數據天貓反爬蟲(chóng),很可能還沒(méi)加載完成取不到數據。
  解決方案:通過(guò)selenium提供的工具來(lái)延后獲取內容,直到獲取到數據,或者超時(shí)。

關(guān)鍵詞采集方法

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 640 次瀏覽 ? 2020-05-04 08:07 ? 來(lái)自相關(guān)話(huà)題

  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 關(guān)鍵詞采集方法本文將介紹怎樣借助【詞庫】批量挖掘并采集長(cháng)尾詞的方式,對 SEOSEM 站長(cháng) 來(lái)說(shuō)十分實(shí)用。 本來(lái)還將介紹一款免費好用的數據采集工具 【八爪魚(yú)數據采集】 , 讓站長(cháng)采集關(guān)鍵詞的工作事半功倍。長(cháng)尾詞對于站長(cháng)來(lái)說(shuō)是提升網(wǎng)站流量的核心之技能之一, 是不容忽略的一項方法, 在搜索引擎營(yíng)銷(xiāo)中對關(guān)鍵詞策略的擬定是十分重要的, 這些長(cháng)尾關(guān)鍵詞能為網(wǎng)站 貢獻很大的一部分流量,并且帶來(lái)的客人轉化率也很不錯。下面就以【詞庫】為例,教諸位站長(cháng)怎么是用【八爪魚(yú)數據采集器】批量采集關(guān) 鍵詞。采集網(wǎng)站:本文就以一組(100 個(gè) B2B 行業(yè)有指數的關(guān)鍵詞)為例,來(lái)采集關(guān)于這一組關(guān) 鍵詞的所有相關(guān)長(cháng)尾關(guān)鍵詞。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 采集的內容包括:搜索后的長(cháng)尾關(guān)鍵詞,360 指數,該長(cháng)尾關(guān)鍵詞搜索量以及搜 索量的第一位網(wǎng)站(頁(yè)面)這四個(gè)有效數組。使用功能點(diǎn):? 循環(huán)文本輸入?Xpathxpath 入門(mén)教程 1 xpath 入門(mén) 2 相對 XPATH 教程-7.0 版 ? 數字翻頁(yè)步驟 1:創(chuàng )建詞庫網(wǎng)采集任務(wù)1)進(jìn)入主界面,選擇“自定義采集”八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)將要采集的網(wǎng)址 URL 復制粘貼到網(wǎng)站輸入框中,點(diǎn)擊“保存網(wǎng)址”八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 2:創(chuàng )建循環(huán)輸入文本八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 1)打開(kāi)網(wǎng)頁(yè)以后,點(diǎn)開(kāi)右上角的流程,然后從左邊拖一個(gè)循環(huán)進(jìn)來(lái)2)點(diǎn)擊循環(huán)步驟,在它的中級選項哪里選擇文本列表,再點(diǎn)開(kāi)下邊的 A,把復 制好的關(guān)鍵詞全部粘貼進(jìn)去,注意換行,再點(diǎn)擊確定保存。
  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)創(chuàng )建好循環(huán)文本輸入后, 點(diǎn)擊頁(yè)面上的搜索框, 創(chuàng )建輸入文本的步驟, 注意, 不需要輸入任何文本即可,若是手動(dòng)生成的是在循環(huán)外邊,拖入進(jìn)去,再勾選循 環(huán)即可。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 4)右鍵選擇頁(yè)面上的搜索按鍵,設置好點(diǎn)擊元素,這樣,循環(huán)文本輸入就設置 好了,流程下方就是搜索下來(lái)的長(cháng)尾關(guān)鍵詞。步驟 3:創(chuàng )建數字翻頁(yè)1)由于該搜索結果頁(yè)面沒(méi)有下一頁(yè)按鍵,只有數字頁(yè)數,所以我們須要用到 xpath 的一些相關(guān)知識,來(lái)設置特殊的數字翻頁(yè)。首先去火狐瀏覽器里把該網(wǎng)頁(yè) 打開(kāi)并搜索相應關(guān)鍵詞后,打開(kāi)瀏覽器右上角的 firebug 工具--小瓢蟲(chóng)(不懂的 同學(xué)可以去官網(wǎng)教程看一下相應的 xpath 教程)八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)翻到頁(yè)面下方輸入關(guān)鍵詞采集文章, 找到數字位置的源碼, 可以看見(jiàn)當前頁(yè)面的數字跟其他數字, 在源碼里節點(diǎn)的屬性 class 是有所不同的八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)收 益 我 們 首 先 定 位 到 該 頁(yè) 面 的 數 字 位 置 , 手 寫(xiě) xpath : //div[@id="page"]/a[contains(@class,'current')]八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 4)再利用固定函數 following-sibling 來(lái)定位到該節點(diǎn)后的第一個(gè)同類(lèi)節點(diǎn), 注意,該函數前面接::是固定格式,a[1]是指該節點(diǎn)后的第一個(gè)同類(lèi)節點(diǎn)八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 5)可以查看翻頁(yè)后還是正常定位到下一頁(yè)的數字上,說(shuō)明該 xpath 沒(méi)有問(wèn)題6)再回到八爪魚(yú), 在兩側流程頁(yè)面拖一個(gè)循環(huán)進(jìn)來(lái), 高級選項里選擇單個(gè)元素, 并把 xpath 放入進(jìn)去,點(diǎn)確定保存好八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 7)再從左邊拖一個(gè)點(diǎn)擊元素進(jìn)來(lái),并在中級選項里勾選好循環(huán),特殊數字翻頁(yè) 循環(huán)就創(chuàng )建好了八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 4:創(chuàng )建循環(huán)列表1)我們安裝常規方式創(chuàng )建循環(huán)列表,發(fā)現,由于搜索結果后的表格中出現了這 個(gè)無(wú)用的一整行信息。
  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)于是在八爪魚(yú)上面是難以正常的創(chuàng )建好循環(huán)列表的,因為這個(gè)無(wú)用的信息導 致八爪魚(yú)手動(dòng)生成的列表會(huì )定位不準八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)所以我們還是得用到 xpath 的知識,去火狐瀏覽器上面自動(dòng)創(chuàng )建一個(gè)循環(huán)列 表的 xpath。首先定位到第一行第一列的源碼位置4)再找到每一行的源碼位置,發(fā)現她們都是 tbody 父節點(diǎn)下相同的 tr 標簽八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 5)再觀(guān)察每一行真正的 tr 節點(diǎn)里都有一個(gè)共同的屬性“id”,并且 id 屬性都 有 一 個(gè) 共 同 的 tr 值 , 所 以 我 們 以 此 為 共 同 點(diǎn) ,手 寫(xiě) 該 xpath:.//tbody/tr[contains(@id,'tr')]輸入關(guān)鍵詞采集文章,來(lái)定位到所有的 tr 節點(diǎn),并把所有無(wú) 用的 tr 給過(guò)濾掉,這樣,循環(huán)列表的 xpath 就創(chuàng )建好了八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 6)再從左邊拖一個(gè)循環(huán)進(jìn)去,循環(huán)形式選擇不固定元素,把該 xpath 放入八爪 魚(yú)里,并以第一個(gè)循環(huán)為例,設置相應的采集字段(由于部份數組源碼里是沒(méi)有 的,所以采集不到),八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 5:?jiǎn)?dòng)采集八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 1)點(diǎn)擊保存任務(wù)后,運行采集,以本地采集為例2)采集完成后,會(huì )跳出提示,選擇“導出數據”。
  選擇“合適的導入方法”, 將采集好的數據導入。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 本文來(lái)自于:相關(guān)采集教程:京東商品信息采集(通過(guò)搜索關(guān)鍵詞) 阿里巴巴關(guān)鍵詞采集: 八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 愛(ài)站關(guān)鍵詞采集: 百度相關(guān)搜索關(guān)鍵詞采集: 亞馬遜關(guān)鍵詞采集: 易迅關(guān)鍵詞采集: 新浪微博關(guān)鍵詞采集: 關(guān)鍵詞提取八爪魚(yú)——90 萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。 1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機,任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。 查看全部

  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 關(guān)鍵詞采集方法本文將介紹怎樣借助【詞庫】批量挖掘并采集長(cháng)尾詞的方式,對 SEOSEM 站長(cháng) 來(lái)說(shuō)十分實(shí)用。 本來(lái)還將介紹一款免費好用的數據采集工具 【八爪魚(yú)數據采集】 , 讓站長(cháng)采集關(guān)鍵詞的工作事半功倍。長(cháng)尾詞對于站長(cháng)來(lái)說(shuō)是提升網(wǎng)站流量的核心之技能之一, 是不容忽略的一項方法, 在搜索引擎營(yíng)銷(xiāo)中對關(guān)鍵詞策略的擬定是十分重要的, 這些長(cháng)尾關(guān)鍵詞能為網(wǎng)站 貢獻很大的一部分流量,并且帶來(lái)的客人轉化率也很不錯。下面就以【詞庫】為例,教諸位站長(cháng)怎么是用【八爪魚(yú)數據采集器】批量采集關(guān) 鍵詞。采集網(wǎng)站:本文就以一組(100 個(gè) B2B 行業(yè)有指數的關(guān)鍵詞)為例,來(lái)采集關(guān)于這一組關(guān) 鍵詞的所有相關(guān)長(cháng)尾關(guān)鍵詞。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 采集的內容包括:搜索后的長(cháng)尾關(guān)鍵詞,360 指數,該長(cháng)尾關(guān)鍵詞搜索量以及搜 索量的第一位網(wǎng)站(頁(yè)面)這四個(gè)有效數組。使用功能點(diǎn):? 循環(huán)文本輸入?Xpathxpath 入門(mén)教程 1 xpath 入門(mén) 2 相對 XPATH 教程-7.0 版 ? 數字翻頁(yè)步驟 1:創(chuàng )建詞庫網(wǎng)采集任務(wù)1)進(jìn)入主界面,選擇“自定義采集”八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)將要采集的網(wǎng)址 URL 復制粘貼到網(wǎng)站輸入框中,點(diǎn)擊“保存網(wǎng)址”八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 2:創(chuàng )建循環(huán)輸入文本八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 1)打開(kāi)網(wǎng)頁(yè)以后,點(diǎn)開(kāi)右上角的流程,然后從左邊拖一個(gè)循環(huán)進(jìn)來(lái)2)點(diǎn)擊循環(huán)步驟,在它的中級選項哪里選擇文本列表,再點(diǎn)開(kāi)下邊的 A,把復 制好的關(guān)鍵詞全部粘貼進(jìn)去,注意換行,再點(diǎn)擊確定保存。
  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)創(chuàng )建好循環(huán)文本輸入后, 點(diǎn)擊頁(yè)面上的搜索框, 創(chuàng )建輸入文本的步驟, 注意, 不需要輸入任何文本即可,若是手動(dòng)生成的是在循環(huán)外邊,拖入進(jìn)去,再勾選循 環(huán)即可。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 4)右鍵選擇頁(yè)面上的搜索按鍵,設置好點(diǎn)擊元素,這樣,循環(huán)文本輸入就設置 好了,流程下方就是搜索下來(lái)的長(cháng)尾關(guān)鍵詞。步驟 3:創(chuàng )建數字翻頁(yè)1)由于該搜索結果頁(yè)面沒(méi)有下一頁(yè)按鍵,只有數字頁(yè)數,所以我們須要用到 xpath 的一些相關(guān)知識,來(lái)設置特殊的數字翻頁(yè)。首先去火狐瀏覽器里把該網(wǎng)頁(yè) 打開(kāi)并搜索相應關(guān)鍵詞后,打開(kāi)瀏覽器右上角的 firebug 工具--小瓢蟲(chóng)(不懂的 同學(xué)可以去官網(wǎng)教程看一下相應的 xpath 教程)八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)翻到頁(yè)面下方輸入關(guān)鍵詞采集文章, 找到數字位置的源碼, 可以看見(jiàn)當前頁(yè)面的數字跟其他數字, 在源碼里節點(diǎn)的屬性 class 是有所不同的八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)收 益 我 們 首 先 定 位 到 該 頁(yè) 面 的 數 字 位 置 , 手 寫(xiě) xpath : //div[@id="page"]/a[contains(@class,'current')]八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 4)再利用固定函數 following-sibling 來(lái)定位到該節點(diǎn)后的第一個(gè)同類(lèi)節點(diǎn), 注意,該函數前面接::是固定格式,a[1]是指該節點(diǎn)后的第一個(gè)同類(lèi)節點(diǎn)八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 5)可以查看翻頁(yè)后還是正常定位到下一頁(yè)的數字上,說(shuō)明該 xpath 沒(méi)有問(wèn)題6)再回到八爪魚(yú), 在兩側流程頁(yè)面拖一個(gè)循環(huán)進(jìn)來(lái), 高級選項里選擇單個(gè)元素, 并把 xpath 放入進(jìn)去,點(diǎn)確定保存好八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 7)再從左邊拖一個(gè)點(diǎn)擊元素進(jìn)來(lái),并在中級選項里勾選好循環(huán),特殊數字翻頁(yè) 循環(huán)就創(chuàng )建好了八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 4:創(chuàng )建循環(huán)列表1)我們安裝常規方式創(chuàng )建循環(huán)列表,發(fā)現,由于搜索結果后的表格中出現了這 個(gè)無(wú)用的一整行信息。
  八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2)于是在八爪魚(yú)上面是難以正常的創(chuàng )建好循環(huán)列表的,因為這個(gè)無(wú)用的信息導 致八爪魚(yú)手動(dòng)生成的列表會(huì )定位不準八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 3)所以我們還是得用到 xpath 的知識,去火狐瀏覽器上面自動(dòng)創(chuàng )建一個(gè)循環(huán)列 表的 xpath。首先定位到第一行第一列的源碼位置4)再找到每一行的源碼位置,發(fā)現她們都是 tbody 父節點(diǎn)下相同的 tr 標簽八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 5)再觀(guān)察每一行真正的 tr 節點(diǎn)里都有一個(gè)共同的屬性“id”,并且 id 屬性都 有 一 個(gè) 共 同 的 tr 值 , 所 以 我 們 以 此 為 共 同 點(diǎn) ,手 寫(xiě) 該 xpath:.//tbody/tr[contains(@id,'tr')]輸入關(guān)鍵詞采集文章,來(lái)定位到所有的 tr 節點(diǎn),并把所有無(wú) 用的 tr 給過(guò)濾掉,這樣,循環(huán)列表的 xpath 就創(chuàng )建好了八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 6)再從左邊拖一個(gè)循環(huán)進(jìn)去,循環(huán)形式選擇不固定元素,把該 xpath 放入八爪 魚(yú)里,并以第一個(gè)循環(huán)為例,設置相應的采集字段(由于部份數組源碼里是沒(méi)有 的,所以采集不到),八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 步驟 5:?jiǎn)?dòng)采集八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 1)點(diǎn)擊保存任務(wù)后,運行采集,以本地采集為例2)采集完成后,會(huì )跳出提示,選擇“導出數據”。
  選擇“合適的導入方法”, 將采集好的數據導入。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 本文來(lái)自于:相關(guān)采集教程:京東商品信息采集(通過(guò)搜索關(guān)鍵詞) 阿里巴巴關(guān)鍵詞采集: 八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 愛(ài)站關(guān)鍵詞采集: 百度相關(guān)搜索關(guān)鍵詞采集: 亞馬遜關(guān)鍵詞采集: 易迅關(guān)鍵詞采集: 新浪微博關(guān)鍵詞采集: 關(guān)鍵詞提取八爪魚(yú)——90 萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。 1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。八爪魚(yú)·云采集網(wǎng)絡(luò )爬蟲(chóng)軟件 2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機,任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区