国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python Selenium爬蟲實戰(zhàn)應用

這篇具有很好參考價值的文章主要介紹了Python Selenium爬蟲實戰(zhàn)應用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本節(jié)講解 Python Selenium 爬蟲實戰(zhàn)案例,通過對實戰(zhàn)案例的講解讓您進一步認識 Selenium 框架。

實戰(zhàn)案例目標:抓取京東商城(https://www.jd.com/)商品名稱、商品價格、評論數(shù)量,以及商鋪名稱。比如輸入搜索“Python書籍”,則抓取如下數(shù)據(jù):

{'name': 'Python編程 從入門到實踐 第2版 人民郵電出版社', 'price': '¥52.50', 'count': '200+條評價', 'shop': '智囊圖書專營店'}
{'name': 'Python編程 從入門到實踐 第2版(圖靈出品)', 'price': '¥62.10', 'count': '20萬+條評價', 'shop': '人民郵電出版社'}
...

Selenium 框架的學習重點在于定位元素節(jié)點,關于如何定位,我們已經(jīng)介紹了 8 種方法,其中 Xpath 表達式適用性強,并且便捷。因此,建議大家多多熟悉 Xpath 表達式的相關語法規(guī)則。本節(jié)案例中很大一部分采用了 Xpath 表達式定位元素,希望幫助您溫故知新。

本節(jié)案例中涉及了幾個技術難點:第一,如何下拉滾動條下載商品,第二,如何實現(xiàn)翻頁,也就是抓取下一頁的內(nèi)容,第三,如何判斷數(shù)據(jù)已經(jīng)抓取完畢,即終止頁。下面我們逐步講解。

實現(xiàn)自動搜索

實現(xiàn)自動輸出、自動搜索是最基礎的一步。首先定位輸入框的的節(jié)點,其次定位搜索按鈕節(jié)點,這與實現(xiàn)百度自動搜索思路一致,最關鍵就是要正確定位元素節(jié)點。

通過開發(fā)者調(diào)試工具檢查相應的的位置,可得如下 Xpath 表達式:

**

輸入框表達式://*[@id="key"]
搜索按鈕表達式://*[@class='form']/button

代碼如下所示:

  1. from selenium import webdriver
  2. broswer=webdriver.Chrome()
  3. broswer.get(‘https://www.jd.com/’)
  4. broswer.find_element_by_xpath(‘//*[@id=“key”]’).send_keys(“python書籍”)
  5. broswer.find_element_by_xpath(“//*[@class=‘form’]/button”).click()

滾動滑動條

實現(xiàn)了自動搜索后,接下來就是要抓取頁面中的商品信息,而您會發(fā)現(xiàn)只有將滑動條滾動至底部,商品才會全部加載完畢。滾動滑輪操作的代碼如下:

  1. scrollTo(xpos,ypos)

  2. execute_script()執(zhí)行js語句,拉動進度條件

  3. #scrollHeight屬性,表示可滾動內(nèi)容的高度
  4. self.browser.execute_script(
  5. ‘window.scrollTo(0,document.body.scrollHeight)’#拉動進度條至底部
  6. )

之后在通過 Xpath 表達式匹配所有商品,并將它們放入一個大列表中,通過循環(huán)列表取出每個商品,最后提取出想要的信息。

  1. li_list=self.browser.find_elements_by_xpath(‘//*[@id=“J_goodsList”]/ul/li’)
  2. for li in li_list:
  3. item={}
  4. 提取商品名

  5. item[‘name’]=li.find_element_by_xpath(‘.//div[@class=“p-name”]/a/em’).text.strip()
  6. 提取價格

  7. item[‘price’]=li.find_element_by_xpath(‘.//div[@class=“p-price”]’).text.strip()
  8. 提取評論數(shù)量

  9. item[‘count’]=li.find_element_by_xpath(‘.//div[@class=“p-commit”]/strong’).text.strip()
  10. 提取商家店鋪

  11. item[‘shop’]=li.find_element_by_xpath(‘.//div[@class=“p-shopnum”]’).text.strip()

實現(xiàn)翻頁抓取

如何實現(xiàn)翻頁抓取數(shù)據(jù),并判斷數(shù)據(jù)數(shù)據(jù)已經(jīng)抓取完畢呢?這其實并不難想到,我們可以先跳至終止頁(即最后一頁)。此時最后一頁的“下一頁”處于不可用狀態(tài),其元素節(jié)點如下:

**

終止頁下一頁class屬性:<a class="pn-next disabled"><em>下一頁</em><i> > </i></a>
其他頁下一頁class屬性:<a class="pn-next" onclick="SEARCH.page(3, true)" ...><em>下一頁</em><i> > </i></a>

如果頁面源碼中有上述代碼存在,則證明此頁是最后一頁,若沒有則不是。因此通過 if …else 語句即可實現(xiàn)上述需求,如下所示:

  1. #-1說明沒找到,不是最后一頁,執(zhí)行點擊 “下一頁” 操作
  2. if self.browser.page_source.find(‘pn-next disabled’)==-1:
  3. browser.find_element_by_class_name(‘pn-next’).click()

完整程序代碼

完整程序代碼如下所示:

  1. #coding:utf8
  2. from selenium import webdriver
  3. import time
  4. import pymongo
  5. class JdSpider(object):
  6. def init(self):
  7. self.url=‘http://www.jd.com/’
  8. self.options=webdriver.ChromeOptions() # 無頭模式
  9. self.options.add_argument(‘–headless’)
  10. self.browser=webdriver.Chrome(options=self.options) # 創(chuàng)建無界面參數(shù)的瀏覽器對象
  11. self.i=0 #計數(shù),一共有多少件商品
  12. #輸入地址+輸入商品+點擊按鈕,切記這里元素節(jié)點是京東首頁的輸入欄、搜索按鈕
  13. def get_html(self):
  14. self.browser.get(self.url)
  15. self.browser.find_element_by_xpath(‘//*[@id=“key”]’).send_keys(‘python書籍’)
  16. self.browser.find_element_by_xpath(“//*[@class=‘form’]/button”).click()
  17. #把進度條件拉倒最底部+提取商品信息
  18. def get_data(self):
  19. 執(zhí)行js語句,拉動進度條件

  20. self.browser.execute_script(
  21. ‘window.scrollTo(0,document.body.scrollHeight)’
  22. )
  23. 給頁面元素加載時預留時間

  24. time.sleep(2)
  25. #用 xpath 提取每頁中所有商品,最終形成一個大列表
  26. li_list=self.browser.find_elements_by_xpath(‘//*[@id=“J_goodsList”]/ul/li’)
  27. for li in li_list:
  28. #構建空字典
  29. item={}
  30. item[‘name’]=li.find_element_by_xpath(‘.//div[@class=“p-name”]/a/em’).text.strip()
  31. item[‘price’]=li.find_element_by_xpath(‘.//div[@class=“p-price”]’).text.strip()
  32. item[‘count’]=li.find_element_by_xpath(‘.//div[@class=“p-commit”]/strong’).text.strip()
  33. item[‘shop’]=li.find_element_by_xpath(‘.//div[@class=“p-shopnum”]’).text.strip()
  34. print(item)
  35. self.i+=1
  36. def run(self):
  37. #搜索出想要抓取商品的頁面
  38. self.get_html()
  39. #循環(huán)執(zhí)行點擊“下一頁”操作
  40. while True:
  41. #獲取每一頁要抓取的數(shù)據(jù)
  42. self.get_data()
  43. #判斷是否是最一頁
  44. if self.browser.page_source.find(‘pn-next disabled’)==-1:
  45. self.browser.find_element_by_class_name(‘pn-next’).click()
  46. #預留元素加載時間
  47. time.sleep(1)
  48. else:
  49. print(‘數(shù)量’,self.i)
  50. break
  51. if name == ‘main’:
  52. spider=JdSpider()
  53. spider.run()

輸出結(jié)果如下:

{'name': 'Python編程 從入門到實踐 第2版(圖靈出品) 人民郵電出版社', 'price': '¥52.50', 'count': '200+條評價', 'shop': '智囊圖書專營店'}
{'name': 'Python編程 從入門到實踐 第2版(圖靈出品)', 'price': '¥62.10', 'count': '20萬+條評價', 'shop': '人民郵電出版社'}
{'name': 'Python編程三劍客:Python編程從入門到實踐第2版+快速上手第2版+極客編程(套裝共3冊)', 'price': '¥206.90', 'count': '5萬+條評價', 'shop': '人民郵電出版社'}
{'name': 'Python數(shù)據(jù)分析從入門到實踐(excel高效辦公)(3全彩版)', 'price': '¥46.10', 'count': '10萬+條評價', 'shop': '明日科技京東自營旗艦店'}
{'name': '零基礎學Python(編程入門 項目實踐 同步視頻)(3全彩版)', 'price': '¥37.50', 'count': '10萬+條評價', 'shop': '明日科技京東自營旗艦店'}
{'name': 'Python編程快速上手 讓繁瑣工作自動化 第2版', 'price': '¥44.50', 'count': '10萬+條評價', 'shop': '人民郵電出版社'}
{'name': '現(xiàn)貨包郵Python學習手冊(原書第5版)上下冊2本/計算機編程設計|8053406', 'price': '¥142.30', 'count': '100+條評價', 'shop': '互動創(chuàng)新圖書專營店'}
{'name': '零基礎入門學習Python(第2版)', 'price': '¥70.30', 'count': '1萬+條評價', 'shop': '清華大學出版社'}
{'name': '超簡單:用Python讓Excel飛起來', 'price': '¥34.90', 'count': '2萬+條評價', 'shop': '機械工業(yè)出版社自營官方旗艦店'}
{'name': '流暢的Python(圖靈出品)', 'price': '¥109.80', 'count': '2萬+條評價', 'shop': '人民郵電出版社'}
{'name': 'Python編程從入門到實踐第二版 python編程從入門到實戰(zhàn)零基礎自學教程計算機基礎語言數(shù)據(jù)分析', 'price': '¥49.80', 'count': '5000+條評價', 'shop': '墨馬圖書旗艦店'}
{'name': 'Python深度學習:基于PyTorch', 'price': '¥73.40', 'count': '5萬+條評價', 'shop': '機械工業(yè)出版社自營官方旗艦店'}
{'name': 'Python自然語言處理實戰(zhàn):核心技術與算法 自然語言處理教程', 'price': '¥48.30', 'count': '37條評價', 'shop': '芝麻開門圖書專營店'}
{'name': 'Effective Python:編寫高質(zhì)量Python代碼的90個有效方法(原書第2版)', 'price': '¥110.60\n¥105.10', 'count': '2萬+條評價', 'shop': '機械工業(yè)出版社自營官方旗艦店'}
...

Selenium 自動化爬蟲讓你無須關心網(wǎng)站的類型(靜態(tài)或者動態(tài)),只需您按部就班的尋找元素節(jié)點,并依此點擊,即可實現(xiàn)數(shù)據(jù)抓取。不過 Selenium 最大的缺點就是效率低,因此它只適合做小規(guī)模的數(shù)據(jù)采集工作。

這里給大家分享一份Python全套學習資料,包括學習路線、軟件、源碼、視頻、面試題等等,都是我自己學習時整理的,希望可以對正在學習或者想要學習Python的朋友有幫助!

CSDN大禮包:全網(wǎng)最全《全套Python學習資料》免費分享??

??有需要的小伙伴,可以點擊下方鏈接免費領取或者V掃描下方二維碼免費領取??

??CSDN大禮包??:全網(wǎng)最全《Python學習資料》免費分享(安全鏈接,放心點擊)??

?selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-808328.html

1??零基礎入門

① 學習路線

對于從來沒有接觸過Python的同學,我們幫你準備了詳細的學習成長路線圖??梢哉f是最科學最系統(tǒng)的學習路線,你可以按照上面的知識點去找對應的學習資源,保證自己學得較為全面。
selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言

② 路線對應學習視頻

還有很多適合0基礎入門的學習視頻,有了這些視頻,輕輕松松上手Python~selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言

③練習題

每節(jié)視頻課后,都有對應的練習題哦,可以檢驗學習成果哈哈!
selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言
因篇幅有限,僅展示部分資料

2??國內(nèi)外Python書籍、文檔

① 文檔和書籍資料

selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言

3??Python工具包+項目源碼合集

①Python工具包

學習Python常用的開發(fā)軟件都在這里了!每個都有詳細的安裝教程,保證你可以安裝成功哦!
selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言

②Python實戰(zhàn)案例

光學理論是沒用的,要學會跟著一起敲代碼,動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰(zhàn)案例來學習。100+實戰(zhàn)案例源碼等你來拿!
selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言

③Python小游戲源碼

如果覺得上面的實戰(zhàn)案例有點枯燥,可以試試自己用Python編寫小游戲,讓你的學習過程中增添一點趣味!
selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言

4??Python面試題

我們學會了Python之后,有了技能就可以出去找工作啦!下面這些面試題是都來自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠,并且有阿里大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言
selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言

5??Python兼職渠道

而且學會Python以后,還可以在各大兼職平臺接單賺錢,各種兼職渠道+兼職注意事項+如何和客戶溝通,我都整理成文檔了。
selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言
selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言
上述所有資料 ?? ,朋友們?nèi)绻行枰???《全套Python學習資料》的,可以掃描下方二維碼免費領取 ??
??有需要的小伙伴,可以點擊下方鏈接免費領取或者V掃描下方二維碼免費領取??

??CSDN大禮包??:全網(wǎng)最全《Python學習資料》免費分享(安全鏈接,放心點擊)??

?selenium爬取數(shù)據(jù)案例,python,爬蟲,selenium,數(shù)據(jù)挖掘,開發(fā)語言

到了這里,關于Python Selenium爬蟲實戰(zhàn)應用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Python Selenium爬蟲實戰(zhàn)應用

    Python Selenium爬蟲實戰(zhàn)應用

    本節(jié)講解 Python Selenium 爬蟲實戰(zhàn)案例,通過對實戰(zhàn)案例的講解讓您進一步認識 Selenium 框架。 實戰(zhàn)案例目標:抓取京東商城(https://www.jd.com/)商品名稱、商品價格、評論數(shù)量,以及商鋪名稱。比如輸入搜索“Python書籍”,則抓取如下數(shù)據(jù): Selenium 框架的學習重點在于定位元素

    2024年01月20日
    瀏覽(21)
  • 【Python爬蟲】基于selenium庫爬取京東商品數(shù)據(jù)——以“七夕”為例

    【Python爬蟲】基于selenium庫爬取京東商品數(shù)據(jù)——以“七夕”為例

    小白學爬蟲,費了一番功夫終于成功了哈哈!本文將結(jié)合本人踩雷經(jīng)歷,分享給各位學友~ 用寫入方式打開名為data的csv文件,并確定將要提取的五項數(shù)據(jù)。 上面第一行代碼值得一提,driver =? webdriver.Edge()括號內(nèi)為Edge瀏覽器驅(qū)動程序地址,需要在Edge瀏覽器設置中查找Edge瀏覽器

    2024年02月06日
    瀏覽(27)
  • Python實戰(zhàn):用Selenium爬取網(wǎng)頁數(shù)據(jù)

    網(wǎng)絡爬蟲是Python編程中一個非常有用的技巧,它可以讓您自動獲取網(wǎng)頁上的數(shù)據(jù)。在本文中,我們將介紹如何使用Selenium庫來爬取網(wǎng)頁數(shù)據(jù),特別是那些需要模擬用戶交互的動態(tài)網(wǎng)頁。 Selenium是一個自動化測試工具,它可以模擬用戶在瀏覽器中的操作,比如點擊按鈕、填寫表

    2024年02月06日
    瀏覽(42)
  • Python爬蟲入門:使用selenium庫,webdriver庫模擬瀏覽器爬蟲,模擬用戶爬蟲,爬取網(wǎng)站內(nèi)文章數(shù)據(jù),循環(huán)爬取網(wǎng)站全部數(shù)據(jù)。

    Python爬蟲入門:使用selenium庫,webdriver庫模擬瀏覽器爬蟲,模擬用戶爬蟲,爬取網(wǎng)站內(nèi)文章數(shù)據(jù),循環(huán)爬取網(wǎng)站全部數(shù)據(jù)。

    *嚴正聲明:本文僅限于技術討論與分享,嚴禁用于非法途徑。 目錄 準備工具: 思路: 具體操作: 調(diào)用需要的庫: 啟動瀏覽器驅(qū)動: 代碼主體: ?完整代碼(解析注釋): Python環(huán)境; 安裝selenium庫; Python編輯器; 待爬取的網(wǎng)站; 安裝好的瀏覽器; 與瀏覽器版本相對應的

    2023年04月24日
    瀏覽(103)
  • 爬蟲項目實戰(zhàn)2.1 Selenium爬取Boss招聘信息

    完成: 1.爬取信息 2.基于爬取結(jié)果篩選符合條件的信息 ? ?崗位名稱、薪資、崗位要求、地區(qū)、公司名稱、公司規(guī)模、細節(jié)鏈接 3.篩選base杭州的崗位保存到csv文件中 But容易出現(xiàn)網(wǎng)絡不穩(wěn)定造成的無法定位元素所在位置的情況,小范圍爬取可以 4.基于csv分析后續(xù)

    2024年02月05日
    瀏覽(25)
  • 【爬蟲】7.2. JavaScript動態(tài)渲染界面爬取-Selenium實戰(zhàn)

    爬取的網(wǎng)頁為:https://spa2.scrape.center,里面的內(nèi)容都是通過Ajax渲染出來的,在分析xhr時候發(fā)現(xiàn)url里面有token參數(shù),所有我們使用selenium自動化工具來爬取JavaScript渲染的界面。

    2024年02月10日
    瀏覽(23)
  • Python網(wǎng)絡爬蟲逆向分析爬取動態(tài)網(wǎng)頁、使用Selenium庫爬取動態(tài)網(wǎng)頁、?編輯將數(shù)據(jù)存儲入MongoDB數(shù)據(jù)庫

    Python網(wǎng)絡爬蟲逆向分析爬取動態(tài)網(wǎng)頁、使用Selenium庫爬取動態(tài)網(wǎng)頁、?編輯將數(shù)據(jù)存儲入MongoDB數(shù)據(jù)庫

    目錄 逆向分析爬取動態(tài)網(wǎng)頁 了解靜態(tài)網(wǎng)頁和動態(tài)網(wǎng)頁區(qū)別 1.判斷靜態(tài)網(wǎng)頁 ?2.判斷動態(tài)網(wǎng)頁 ?逆向分析爬取動態(tài)網(wǎng)頁 使用Selenium庫爬取動態(tài)網(wǎng)頁 安裝Selenium庫以及下載瀏覽器補丁 頁面等待 ?頁面操作 1.填充表單 2.執(zhí)行JavaScript 元素選取 Selenium庫的find_element的語法使用格式如下

    2024年02月15日
    瀏覽(65)
  • Python爬蟲Selenium手動接管Edge爬取裁判文書網(wǎng)“環(huán)境污染”數(shù)據(jù)(Mac環(huán)境)

    Python爬蟲Selenium手動接管Edge爬取裁判文書網(wǎng)“環(huán)境污染”數(shù)據(jù)(Mac環(huán)境)

    目標數(shù)據(jù):爬取從2007年到2022年,各地級市中級法院歷年關于“環(huán)境污染”的裁判文書數(shù)量。 由于裁判文書網(wǎng)需要登錄,Selenium手動接管爬取可避免頻繁登錄造成的封號風險。 Selenium如何手動接管Edge瀏覽器: 1、打開終端,將命令 /Applications/Microsoft Edge.app/Contents/MacOS/Microsof

    2023年04月09日
    瀏覽(24)
  • 爬蟲項目實戰(zhàn):利用基于selenium框架的爬蟲模板爬取豆瓣電影Top250

    爬蟲項目實戰(zhàn):利用基于selenium框架的爬蟲模板爬取豆瓣電影Top250

    ?? Hi, I’m @貨又星 ?? I’m interested in … ?? I’m currently learning … ?? I’m looking to collaborate on … ?? How to reach me … README 目錄(持續(xù)更新中) 各種錯誤處理、爬蟲實戰(zhàn)及模板、百度智能云人臉識別、計算機視覺深度學習CNN圖像識別與分類、PaddlePaddle自然語言處理知識圖譜、

    2024年02月04日
    瀏覽(32)
  • 【爬蟲】5.5 Selenium 爬取Ajax網(wǎng)頁數(shù)據(jù)

    【爬蟲】5.5 Selenium 爬取Ajax網(wǎng)頁數(shù)據(jù)

    目錄 ? AJAX 簡介 任務目標 創(chuàng)建Ajax網(wǎng)站 創(chuàng)建服務器程序 編寫爬蟲程序 ????????AJAX(Asynchronous JavaScript And XML,異步 JavaScript 及 XML) Asynchronous 一種創(chuàng)建 交互式 、 快速動態(tài) 網(wǎng)頁應用的網(wǎng)頁開發(fā)技術 通過在后臺與服務器進行少量數(shù)據(jù)交換,無需重新加載整個網(wǎng)頁的情況下

    2024年02月10日
    瀏覽(51)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包