日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

《開源精選》是我們分享Github、Gitee等開源社區中優質項目的欄目,包括技術、學習、實用與各種有趣的內容。本期推薦的是一個使用 Python/ target=_blank class=infotextkey>Python 編寫的輕量級百度爬蟲——BaiduSpider。

 

一個使用 Python 編寫的輕量級百度爬蟲

 

BaiduSpider 是一個使用 Python 編寫的輕量級百度爬蟲。它基于 Requests 和 BeautifulSoup 構建,并提供了易用的 API 接口以及完善的類型注釋,提升開發者的使用體驗。

 

功能特性

  • 節省提取數據的時間,對于類似深度學習項目的數據模型建立與訓練起到了良好的幫助
  • 精準、快速地提取百度搜索結果,并刪除廣告
  • 搜索結果大而全,支持多種搜索類型,支持多種返回類型
  • 提供了簡潔易用的 API

 

安裝

依賴環境:

Python 3.6+

使用pip安裝:

$ pip install baiduspider

從 GitHub 手動安裝:

$ git clone git@github.com:BaiduSpider/BaiduSpider.git

# ...

$ python setup.py install

 

示例

百度網頁搜索,也可以作為綜合搜索使用。

BaiduSpider.search_web(
    self: BaiduSpider,
    query: str,
    pn: int = 1,
    exclude: list = [],
    proxies: Union[dict, None] = None,
) -> WebResult

參數

  • query str:要查詢網頁搜索的字符串
  • pn int:要爬取的頁碼,默認為1,可選
  • exclude dict:要屏蔽的子部件列表,可選
  • time str | List[datetime.datetime]: 搜索時間范圍
  • proxies Union[dict, None]: 代理配置,默認為None,可選

 

實例

基本的調用:這是一個最基本的參數—— query 。它用于傳遞搜索詞(字符串類型)。

# 導入BaiduSpider
from baiduspider import BaiduSpider
from pprint import pprint

# 實例化BaiduSpider
spider = BaiduSpider()

# 搜索網頁
pprint(spider.search_web(query="要搜索的關鍵詞").plain)

指定頁碼:你可以通過設置 pn 參數來更改 BaiduSpider 所獲取的頁碼。

from baiduspider import BaiduSpider
from pprint import pprint

spider = BaiduSpider()

# 搜索網頁,并傳入頁碼參數(此處為第二頁)
pprint(spider.search_web(query="要搜索的關鍵詞", pn=2).plain)

注意:傳入頁碼參數的時候一定要小心,務必不要傳入過大的頁碼,否則百度搜索會自動跳轉回第一頁。


屏蔽特定的搜索結果:這個參數可以為你提供很大的便捷。通過設置 exclude 列表,你可以屏蔽某些特定的網頁搜索子搜索結果來提高解析速度。

from baiduspider import BaiduSpider
from pprint import pprint

spider = BaiduSpider()

# 搜索網頁,并傳入要屏蔽的結果
# 在本樣例中,屏蔽了貼吧和博客
pprint(spider.search_web(query="要搜索的關鍵詞", exclude=["tieba", "blog"]).plain)

exclude 的值可以包含:["news", "video", "baike", "tieba", "blog", "gitee", "related", "calc"],分別表示:資訊,視頻,百科,貼吧,博客,Gitee代碼倉庫,相關搜索,計算。 exclude 的值也可以是["all"],表示屏蔽除了普通搜索結果外的所有搜索結果。實例:

from baiduspider import BaiduSpider
from pprint import pprint

spider = BaiduSpider()

# 搜索網頁,并傳入要屏蔽的結果
# 在本樣例中,屏蔽了所有非普通的搜索結果
pprint(spider.search_web(query="要搜索的關鍵詞", exclude=["all"]).plain)

如果 exclude 中包含all且還有其他參數,那么將按照只有all的方式過濾搜索結果。


按時間篩選: time 參數能夠實現更精準的搜索。 time 的取值可以是一個字符串或者是一個由 datetime.datetime 組成的元組。比如,使用字符串形式:

from baiduspider import BaiduSpider
from pprint import pprint

spider = BaiduSpider()

# 搜索網頁,僅顯示時間段內的搜索結果
# 在本樣例中,篩選后僅顯示一周內的搜索結果
pprint(spider.search_web(query="要搜索的關鍵詞", time="week").plain)

此功能使用百度內置的搜索時間篩選器篩選結果,并非使用程序篩選。在這個樣例中, time 的值是"week",代表篩選一周內的搜索結果。 time 的可選值如下:["day", "week", "month", "year"]。分別表示:一天內、一周內、一月內、一年內。除此以外,BaiduSpider 還支持自定義時間段。例如:

from baiduspider import BaiduSpider
from pprint import pprint
from datetime import datetime

spider = BaiduSpider()

# 在本樣例中,篩選后僅顯示2020.1.5 - 2020.4.9的搜索結果
pprint(spider.search_web(query="要搜索的關鍵詞", time=(datetime(2020, 1, 5), datetime(2020, 4, 9))).plain)

在這個樣例中, time 的值是一個元組(tuple)。元組的第一個值是起始時間,第二個值是結束時間。BaiduSpider會把他們都轉化成 time.time() 形式的浮點數(然后僅保留整數),所以你也可以將 datetime 替換為一個整數。

—END—

此項目使用GPL3.0開源協議,更多功能大家可自行前往閱讀。

開源地址:https://github.com/BaiduSpider/BaiduSpider

分享到:
標簽:爬蟲
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定