<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用 Jupyter Notebook 爬取微博圖片保存本地!

          共 3393字,需瀏覽 7分鐘

           ·

          2021-08-01 17:31

          文 | 潮汐

          來源:Python 技術(shù)「ID: pythonall」

          今天咱們用 Jupyter-Notebook 并結(jié)合框架(Selenium)模擬瀏覽器抓取微博圖片并將圖片保存本地。

          Selenium 是一個(gè)用電腦模擬人的操作瀏覽器網(wǎng)頁(yè),可以實(shí)現(xiàn)自動(dòng)化測(cè)試,模擬瀏覽器抓取數(shù)據(jù)等工作。

          環(huán)境部署

          安裝 Jupyter notebook

          關(guān)于 Jupyter notebook 的詳細(xì)知識(shí)點(diǎn)在以往的文章中有做過詳細(xì)的介紹,詳情請(qǐng)參考文章一文吃透 Jupyter notebook

          這里只需要在命令行中輸入:jupyter notebook 啟動(dòng)跳轉(zhuǎn)到瀏覽器編輯界面即可。

          瀏覽器頁(yè)面:

          安裝 Selenium

          安裝 Selenium 非常簡(jiǎn)單,只需要用命令 'pip install Selenium' 即可,安裝成功提示信息如下:

          下載瀏覽器驅(qū)動(dòng)

          下載驅(qū)動(dòng)地址如下:

          Firefox瀏覽器驅(qū)動(dòng)

          Chrome瀏覽器驅(qū)動(dòng):chromedriver

          IE瀏覽器驅(qū)動(dòng):IEDriverServer

          Edge瀏覽器驅(qū)動(dòng):MicrosoftWebDriver

          需要把瀏覽器驅(qū)動(dòng)放入系統(tǒng)路徑中,或者直接告知 selenuim 的驅(qū)動(dòng)路徑。

          環(huán)境都搭建好后就可以直接開始爬取數(shù)據(jù)了。

          抓取微博數(shù)據(jù)

          首先導(dǎo)入包,模擬瀏覽器訪問微博主頁(yè),詳細(xì)代碼如下:


          from selenium import webdriver
          driver = webdriver.Chrome()
          driver.get('https://weibo.com/')

          此時(shí)瀏覽器會(huì)打開一個(gè)新頁(yè)面,如下圖所示:

          接下來開始分析頁(yè)面數(shù)據(jù):微博頁(yè)面搜索奧運(yùn)會(huì)關(guān)鍵字后出現(xiàn)新的頁(yè)面,然后復(fù)制網(wǎng)址,抓取和奧運(yùn)會(huì)相關(guān)的圖片保存于本地,搜索界面如下:

          輸入網(wǎng)址獲取網(wǎng)頁(yè)內(nèi)容:

          driver.get('https://s.weibo.com/weibo/%25E5%25A5%25A5%25E8%25BF%2590%25E4%25BC%259A?topnav=1&wvr=6&b=1')
          contents = driver.find_elements_by_xpath(r'//p[@class="txt"]')
          print(len(contents))

          輸出內(nèi)容如下:

          查看網(wǎng)頁(yè)詳細(xì)信息:


          for i in range(0,3):
              print("==============================")
              print(contents[i].get_attribute('innerHTML'))
              

          獲取圖片信息:


          contents = driver.find_elements_by_xpath(r'//img[@action-type="fl_pics"]')

          print(len(contents))

          for i in range(0,20):
              print("==============================")
              print(contents[i].get_attribute('src'))

          下載圖片在本地:


          import os
          import urllib.request

          for i in range(0,20):
              print("==============================")
              image_url=contents[i].get_attribute('src')
              file_name="downloads//p"+str(i)+".jpg"
              print(image_url,file_name)
              urllib.request.urlretrieve(image_url, filename=file_name)

          至此微博頁(yè)面關(guān)于奧運(yùn)會(huì)的相關(guān)圖片已保存于本地,圖片保存詳情如下:

          匯總代碼如下


          from selenium import webdriver
          import urllib.request

          driver = webdriver.Chrome()
          driver.get('https://weibo.com/')

          driver.get('https://s.weibo.com/weibo/%25E5%25A5%25A5%25E8%25BF%2590%25E4%25BC%259A?topnav=1&wvr=6&b=1')

          contents = driver.find_elements_by_xpath(r'//p[@class="txt"]')

          for i in range(0,3):
              print("==============================")
              print(contents[i].get_attribute('innerHTML'))

          contents = driver.find_elements_by_xpath(r'//img[@action-type="fl_pics"]')

          print(len(contents))

          for i in range(0,20):
              print("==============================")
              print(contents[i].get_attribute('src'))


          for i in range(0,20):
              print("==============================")
              image_url=contents[i].get_attribute('src')
              file_name="downloads//p"+str(i)+".jpg"
              print(image_url,file_name)
              urllib.request.urlretrieve(image_url, filename=file_name)
              

          以上匯總代碼給沒有安裝 Jupyter Notebook 的朋友們使用,希望對(duì)大家有幫助。

          總結(jié)

          今天的文章主要講解用 Jupyter Notebook 工具和 Selenium 框架抓取微博數(shù)據(jù),希望對(duì)大家有所幫助。

          PS公號(hào)內(nèi)回復(fù)「Python」即可進(jìn)入Python 新手學(xué)習(xí)交流群,一起 100 天計(jì)劃!


          老規(guī)矩,兄弟們還記得么,右下角的 “在看” 點(diǎn)一下如果感覺文章內(nèi)容不錯(cuò)的話,記得分享朋友圈讓更多的人知道!

          代碼獲取方式

          識(shí)別文末二維碼,回復(fù):210729

          瀏覽 160
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产无遮挡裸体色视频免费观看 | 亚洲精品国产精品乱码桃花 | 午夜精品尤物福利视频 | 亚洲.欧美.丝袜.中文.综合 | 麻豆美女操逼 |