<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>

          一個能夠屏蔽百度廣告的爬蟲:BaiduSpider

          共 6264字,需瀏覽 13分鐘

           ·

          2021-01-20 00:06

          作者:samzhangjy
          來源:公眾號「杰哥的IT之旅」
          ID:Jake_Internet

          前言

          有時候做數(shù)據(jù)統(tǒng)計的時候,常常很難大而全地抓取一個頁面上所有的搜索結果,比如百度網(wǎng)頁搜索,有時候會有視頻欄,新聞欄,百科欄,等等。普通的爬蟲都不能爬到這些,因為它們的結構跟普通搜索結果是完全不一樣的。但是,BaiduSpider可以,接下來,我們來看下這期視頻:

          BaiduSpider是一個能夠抓取百度各類搜索結果的爬蟲,使用Python編寫。它十分輕量,但是卻能夠準確地爬取各種類型復雜的結果,包括我們上面所說的視頻,新聞,百科等。

          目前實現(xiàn)的功能有百度網(wǎng)頁搜索,百度圖片搜索,百度知道搜索,百度視頻搜索,百度資訊搜索,百度文庫搜索,百度經(jīng)驗搜索和百度百科搜索。

          除此以外,BaiduSpider還擁有多種不同的平臺,目前有Python原生,Web UI和Web API,并且接下來還會推出BaiduSpider CLI,讓你在命令行里完成搜索。

          主要功能

          當然,上面才是它的一點點功能,它最大的賣點在于,它所爬取的所有搜索結果都沒有廣告!有了它,你就再也不用去安裝什么AdBlock,AdGuard啦!

          但是,讓我們先來小試牛刀,看看它爬取搜索結果的準確度和完整度怎么樣吧。比如說,我們來搜索一下Python教程視頻

          對比一下百度搜索的頁面:

          我們可以發(fā)現(xiàn),BaiduSpider爬取到的信息是和百度一模一樣的(除去百度最后一個是廣告)!可見BaiduSpider的準確度。

          廣告屏蔽

          接下來,我們來看看它處理廣告的能力:

          幾乎一半都是廣告。。。再看看BaiduSpider的:

          可以很直接地看出BaiduSpider屏蔽了所有右下角帶有廣告標簽的搜索結果,是不是十分大快人心……

          基本功:Python原生

          說了這么多,展示的都是網(wǎng)頁端的結果,沒有一個是能通過Python調用的。你可能會問,這玩意不是Python編寫的嗎?怎么沒有提供Python API?

          別急,接下來我們就來介紹它最常用的部分——BaiduSpider Python原生。

          比如,我想要搜索關于git的結果,通過Python API調用就只有這么幾行代碼:

          from?baiduspider?import?BaiduSpider
          from?pprint?import?pprint

          spider?=?BaiduSpider()
          pprint(spider.search_web('git'))

          沒錯,BaiduSpider也發(fā)布了PyPI包!讓我們看一下這段代碼的運行結果如何:

          {'results':?[{'result':?100000000,?'type':?'total'},
          ?????????????{'results':?['git教程',
          ??????????????????????????'github中文官網(wǎng)網(wǎng)頁',
          ??????????????????????????'小奶貓回家地址github',
          ??????????????????????????'git新手教程',
          ??????????????????????????'git通俗一點是干什么的',
          ??????????????????????????'github官網(wǎng)切換中文',
          ??????????????????????????'git提交代碼的正確步驟',
          ??????????????????????????'Git使用教程',
          ??????????????????????????'游戲源碼'],
          ??????????????'type':?'related'},
          ?????????????{'des':?'Git?is?a?free?and?open?source?distributed?version?'
          ?????????????????????'control?system?designed?to?handle?everything?from?small?'
          ?????????????????????'to?very?larg...',
          ??????????????'origin':?'git-scm.com/',
          ??????????????'time':?None,
          ??????????????'title':?'git官網(wǎng)',
          ??????????????'type':?'result',
          ??????????????'url':?'http://www.baidu.com/link?url=io2eYwa4OovMW42jQtlgSYuRE1emLSXzGNikMbmxYTe'},
          ?????????????{'des':?'Git 教程 Git 是一個開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項目。Git 是?'
          ?????????????????????'Linus?Torvalds?為了幫助管理?Linux?內核開發(fā)而開發(fā)的一個開放源碼...',
          ??????????????'origin':?'www.runoob.com/git/git-tutori....',
          ??????????????'time':?None,
          ??????????????'title':?'Git?教程?|?菜鳥教程',
          ??????????????'type':?'result',
          ??????????????'url':?'http://www.baidu.com/link?url=iTkBZk7h5QyDo6J8fmT4c4ufn7zJnEUhB0fXyBYBg334qXZ4GzWIpu-eV4hqjpk3hYjFlNZZwUPcO9u3nH8xL_'},
          ?????????????{'des':?'Git 教程 Git 是一個開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項目。Git 是?'
          ?????????????????????'Linus?Torvalds?為了幫助管理?Linux?內核開發(fā)而開發(fā)的一個開放源碼...',
          ??????????????'origin':?None,
          ??????????????'time':?None,
          ??????????????'title':?'git安裝相關博客',
          ??????????????'type':?'result',
          ??????????????'url':?'http://www.baidu.com/link?url=Q-zaj4E2-_jaO-ZR5DTM2U8r8ZH3_8JuPtsKgXllLcVQW-4H40hBzIFqcgoByjmrN-jr7_WtIP9Cp55C-nLR2A4LNtpcHCgrBjCs0bUPZHC'},
          ?????????????{'des':?'If?you?already?have?Git?installed,?you?can?get?the?'
          ?????????????????????'latest?development?version?via?Git?itself:?git?clone?'
          ?????????????????????'https://github.com/git/git?...',
          ??????????????'origin':?'www.git-scm.com/download/',
          ??????????????'time':?None,
          ??????????????'title':?'Git?-?Downloads',
          ??????????????'type':?'result',
          ??????????????'url':?'http://www.baidu.com/link?url=ITh8cnvqErJCQx9ICLrJed8f5hGCEU5JLpVoK1MsUPqqsl5sPnlhfCL8OjxuQLSN'},
          ?????????????{'des':?'If?you?already?have?Git?installed,?you?can?get?the?'
          ?????????????????????'latest?development?version?via?Git?itself:?git?clone?'
          ?????????????????????'https://github.com/git/git?...',
          ??????????????'origin':?None,
          ??????????????'time':?None,
          ??????????????'title':?'Git-開源的分布式版本控制系統(tǒng)',
          ??????????????'type':?'result',
          ??????????????'url':?'http://www.baidu.com/link?url=Tft8L7Dd71mQxbWpuJO7SpT2HR2RDgkQLNSEnk_MxaPQ6ZML0TUpgflG9DOvTGzND3olfU9ScMKmPDKRLO_l33vHKTGNMmwv89PgOFiVmP_'},
          ?????????????{'des':?'Git?Source?Code?Mirror?-?This?is?a?publish-only?'
          ?????????????????????'repository?and?all?pull?requests?are?ignored.?Please?'
          ?????????????????????'follow?Documentation/SubmittingPatches?procedure?for?...',
          ??????????????'origin':?'github',
          ??????????????'time':?None,
          ??????????????'title':?'GitHub?-?git/git:?Git?Source?Code?Mirror?-?This?is?a?'
          ???????????????????????'p...',
          ??????????????'type':?'result',
          ??????????????'url':?'http://www.baidu.com/link?url=KtsMqw1oBIWWlkZDnq2Y5P1tdu33Uy0n9y5ZYUufiG_ab_m6ky41KrZUkYbXf2gC'},
          ?????????????{'des':?'git?Git?Source?Code?Mirror?-?This?is?a?publish-only?'
          ?????????????????????'repository?and?all?pull?requests?are?ignored.?Please?'
          ?????????????????????'follow?Documentation/SubmittingPat...',
          ??????????????'origin':?'github',
          ??????????????'time':?'2021年1月2日',
          ??????????????'title':?'Git?·?GitHub',
          ??????????????'type':?'result',
          ??????????????'url':?'http://www.baidu.com/link?url=rxFpc1Ymkb4RTcvH19Qg1VEcf62S5T6eMpHw7v3Xz5W'},
          ?????????????{'des':?'最近要與部門同事一起做技術分享,我選擇了Git,因為Git?'
          ?????????????????????'是一種在全球范圍都廣受歡迎的版本控制系統(tǒng)。在開發(fā)過程中,為了跟蹤代碼,文檔,項目等信息中的變化,版本控制...',
          ??????????????'origin':?'博客園',
          ??????????????'time':?None,
          ??????????????'title':?'一個小時學會Git?-?張果?-?博客園',
          ??????????????'type':?'result',
          ??????????????'url':?'http://www.baidu.com/link?url=q2JO9SIY9y_8Cvs8mMfkXKUF1pY8HCaS0v1FYPQhzvOncl4HxlUXoVuJXsds_WdG3ibcwYf7JNwuWWGhP00xF_'},
          ?????????????{'des':?'We?bring?the?awesome?Git?VCS?to?Windows',
          ??????????????'origin':?'gitforwindows.org/',
          ??????????????'time':?None,
          ??????????????'title':?'這里下載git?-?Git?for?Windows',
          ??????????????'type':?'result',
          ??????????????'url':?'http://www.baidu.com/link?url=LJMKB611S4QxZWM5lSLUL2K0ta4zYMZUtzrdx6bvixWSUDtXkBg1Izu5M2CoU3yP'}],
          ?'total':?10}

          可以看出,所有結果都已經(jīng)分好了類(此處主要是普通的搜索結果),并且還有總計搜索結果數(shù)、總頁數(shù)等附加信息。所有BaiduSpider方法的返回值都是一個dict,里面有resultstotal兩個鍵,分別代表所有搜索結果(list),和總頁數(shù)(int)。

          最后

          看到這里,你是不是已經(jīng)想見識一下這個神器了呢?什么?多少錢?不,它是免費的!它不僅免費,而且還開源呢。不僅如此,它也提供詳細的文檔(部分還在撰寫中),可以說是“配套齊全”啦。

          GitHub地址:

          https://github.com/BaiduSpider/BaiduSpider

          文檔地址:

          https://baiduspider.github.io

          文中提到的網(wǎng)頁版地址(目前還在Alpha階段,請適量使用,僅作為demo用途):https://baidus.netlify.app


          本篇由作者:samzhangjy 投稿,不妨大家可以給他的 GitHub 點個 Star 支持一下。

          如果你也有原創(chuàng)博文投稿的打算,歡迎大家通過本公眾號后臺回復:「原創(chuàng)投稿」查看詳情。

          推薦閱讀

          不懂送女朋友什么牌子的口紅?沒關系!Python 數(shù)據(jù)分析告訴你。

          利用 Python 爬取了 13966 條運維招聘信息,我得出了哪些結論?

          利用 Python 爬取了 37483 條上海二手房信息,我得出的結論是?

          總說手機沒有“好壁紙”,Python一次性抓取500張“美女”圖片,夠不夠用!

          Python 爬取鏈家成都二手房源信息 asyncio + aiohttp 異步爬蟲實戰(zhàn)

          瀏覽 194
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  婷婷涩嫩草鲁丝久久午夜精品 | 亚洲婷婷在线视频 | 欧美黄片区 | 青青草成人视频在线播放 | 乳交打奶炮泄精合集 |