摘要:,源代碼爬取京東商品列表,以手機商品列表為例示例網址版本京東手機列表源代碼下載位置請看文章末尾的源。,抓取結果運行上面的代碼,就會爬取京東手機品類頁面的所有手機型號價格等信息,并保存到本地文件京東手機列表中。
1,引言
在上一篇《python爬蟲實戰:爬取Drupal論壇帖子列表》,爬取了一個用Drupal做的論壇,是靜態頁面,抓取比較容易,即使直接解析html源文件都可以抓取到需要的內容。相反,JavaScript實現的動態網頁內容,無法從html源代碼抓取需要的內容,必須先執行JavaScript。
我們在《Python爬蟲使用Selenium+PhantomJS抓取Ajax和動態HTML內容》一文已經成功檢驗了動態網頁內容的抓取方法,本文將實驗程序進行改寫,使用開源Python爬蟲規定的標準python內容提取器,把代碼變得非常簡潔。
2,技術要點我們在多個文章說過本開源爬蟲的目的:節省程序員的時間。關鍵是省去編寫提取規則的時間,尤其調試規則很花時間,節省時間問題在《1分鐘快速生成用于網頁內容提取的xslt》一文已經有了解決方案,本文我們用京東網站作為測試目標,而電商網站都有很多動態內容,比如,產品價格和評論數等等,往往采用后加載的方式,在html源文檔加載完成以后再執行javascript代碼把動態內容填寫上,所以,本案例主要驗證動態內容的抓取。
另外,本文案例沒有使用GooSeeker爬蟲API,而是把MS謀數臺生成的xslt腳本程序保存在本地文件中,在程序運行的時候把文件讀出來注入到gsExtractor提取器。后續會有專門的案例演示 API的使用方法。
總之,本示例兩個技術要點總結如下:
從本地文件讀取xlst程序
把xlst注入到提取器gsExtractor中,利用xslt從網頁上一次提取性多個字段內容。
# -*- coding:utf-8 -*- # 爬取京東商品列表, 以手機商品列表為例 # 示例網址:http://list.jd.com/list.html?cat=9987,653,655&page=1&JL=6_0_0&ms=5 # crawler_jd_list.py # 版本: V1.0 from urllib import request from lxml import etree from selenium import webdriver from gooseeker import gsExtractor import time class Spider: def __init__(self): self.scrollpages = 0 self.waittime = 3 self.phantomjsPath = "C:phantomjs-2.1.1-windowsinphantomjs.exe" def getContent(self, url): browser = webdriver.PhantomJS( executable_path = self.phantomjsPath ) browser.get(url) time.sleep(self.waittime) html = browser.execute_script("return document.documentElement.outerHTML") doc = etree.HTML(html) jdlistExtra = gsExtractor() jdlistExtra.setXsltFromFile("jd_list.xml") output = jdlistExtra.extract(doc) return output def saveContent(self, filepath, content): file_obj = open(filepath, "w", encoding="UTF-8") file_obj.write(content) file_obj.close() url = "http://list.jd.com/list.html?cat=9987,653,655&page=1&JL=6_0_0&ms=5" jdspider = Spider() result = jdspider.getContent(url) jdspider.saveContent("京東手機列表_1.xml", str(result))
源代碼下載位置請看文章末尾的GitHub源。
4,抓取結果運行上面的代碼,就會爬取京東手機品類頁面的所有手機型號、價格等信息,并保存到本地文件“京東手機列表_1.xml”中。我們用瀏覽器打開這個結果文件,會看到如下的內容
1, Python即時網絡爬蟲項目: 內容提取器的定義
6,集搜客GooSeeker開源代碼下載源1, GooSeeker開源Python網絡爬蟲GitHub源
7,文檔修改歷史1,2016-06-08:V1.0
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45476.html
摘要:,實驗用的文件我們使用爬蟲實戰爬取京東商品列表一文的結果文件,爬蟲爬取的結果保存在京東手機列表文件中。,相關文檔,即時網絡爬蟲項目內容提取器的定義,爬蟲實戰爬取京東商品列表,集搜客開源代碼下載源,開源網絡爬蟲源,文檔修改歷史,首次發布 showImg(https://segmentfault.com/img/bVyf6R); 1,引言 GooSeeker早在9年前就開始了Semanti...
摘要:,實驗用的文件我們使用爬蟲實戰爬取京東商品列表一文的結果文件,爬蟲爬取的結果保存在京東手機列表文件中。,相關文檔,即時網絡爬蟲項目內容提取器的定義,爬蟲實戰爬取京東商品列表,集搜客開源代碼下載源,開源網絡爬蟲源,文檔修改歷史,首次發布 showImg(https://segmentfault.com/img/bVyf6R); 1,引言 GooSeeker早在9年前就開始了Semanti...
摘要:和前面幾節課類似的分析這節課就不做了,對于分頁,請求什么的,大家可以直接參考前面的四節課,這一刻主要特別的是,我們在采集商品的同時,會將京東的商品評價采集下來。 系列教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取 手把手教你寫電商爬蟲-第四課 淘寶網商品爬...
摘要:和前面幾節課類似的分析這節課就不做了,對于分頁,請求什么的,大家可以直接參考前面的四節課,這一刻主要特別的是,我們在采集商品的同時,會將京東的商品評價采集下來。 系列教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取 手把手教你寫電商爬蟲-第四課 淘寶網商品爬...
閱讀 472·2023-04-25 17:26
閱讀 1495·2021-08-05 09:58
閱讀 1959·2019-08-30 13:17
閱讀 943·2019-08-28 17:52
閱讀 1061·2019-08-26 18:27
閱讀 1413·2019-08-26 14:05
閱讀 3608·2019-08-26 14:05
閱讀 1586·2019-08-26 10:45