Python10行代碼實現(xiàn)模擬百度搜索的示例
1000塊錢做個百度?能提出這種要求的客戶實乃乙方克星、民族之光、科創(chuàng)永動機、西虹市一大杰出青年,諾獎永遠得不到的人才。
但作為一個硬核的程序員,沒有什么功能是我們實現(xiàn)不了的,如果有,那就是錢沒到位。因此,我們要用魔法打敗魔法,10行代碼給他寫一個百度搜索。
1. 獲取百度搜索接口

地址欄中有很多參數(shù),但實際有用的參數(shù)只有 wd ,只需要保留這一個參數(shù)即可,其余刪掉。
url = 'https://www.baidu.com/s?wd=士別三日wyx'
2. 指定搜索內(nèi)容
搜索內(nèi)容肯定不能寫死,需要由用戶「輸入」
kw = input('百度一下:')
url = 'https://www.baidu.com/s?wd=' + kw
3. UA偽裝
利用百度的接口發(fā)送「請求」,獲取響應(yīng)內(nèi)容。
大部分網(wǎng)站都會對用戶的請求進行「過濾」,以防止惡意攻擊行為,比如查看是否是瀏覽器發(fā)出的請求
「UA偽裝」是指在HTTP請求頭中添加 User-agent ,偽裝成瀏覽器的請求,網(wǎng)站檢查請求頭時,發(fā)現(xiàn)有UA請求頭,就會認為是瀏覽器的請求,從而放行。
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0',}
response = requests.get(url=url, headers=headers)
4. 將響應(yīng)內(nèi)容寫入文件
響應(yīng)的內(nèi)容實際上就是構(gòu)成頁面的 HTML 代碼,將響應(yīng)內(nèi)容寫入HTML文件,就獲得了百度搜索的響應(yīng)頁面
fileName = 'a.html'
with open(fileName, 'w', encoding='utf-8') as fp:
fp.write(response.text)
5. 使用瀏覽器打開頁面
頁面生成以后肯定不能再手動打開,那也太low了,使用默認「瀏覽器」自動打開生成的頁面
webbrowser.open(fileName)
源碼如下
import webbrowser
import requests
kw = input('百度一下:')
url = 'https://www.baidu.com/s?wd=' + kw
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0',}
response = requests.get(url=url, headers=headers)
fileName = 'a.html'
with open(fileName, 'w', encoding='utf-8') as fp:
fp.write(response.text)
webbrowser.open(fileName)
輸入想要百度的內(nèi)容,按下回車

即可自動使用默認瀏覽器打開搜索結(jié)果的頁面

到此這篇關(guān)于Python10行代碼實現(xiàn)模擬百度搜索的示例的文章就介紹到這了,更多相關(guān)Python 模擬百度搜索內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中DataFrame數(shù)據(jù)合并merge()和concat()方法詳解
Pandas提供了很多合并Series和Dataframe的強大的功能,通過這些功能可以方便的進行數(shù)據(jù)分析,下面這篇文章主要給大家介紹了關(guān)于python中DataFrame數(shù)據(jù)合并merge()和concat()方法的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python3.6+selenium2.53.6自動化測試_讀取excel文件的方法
這篇文章主要介紹了Python3.6+selenium2.53.6自動化測試_讀取excel文件的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09
Python中break語句和continue語句的用法講解
在Python中,break語句和continue語句一般用于循環(huán)語句中,這篇文章主要介紹了Python中break語句和continue語句的用法小結(jié),需要的朋友可以參考下2022-12-12
Django執(zhí)行源生mysql語句實現(xiàn)過程解析
這篇文章主要介紹了Django執(zhí)行源生mysql語句實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11
pandas創(chuàng)建DataFrame對象失敗的解決方法
本文主要介紹了pandas創(chuàng)建DataFrame對象失敗的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01
Python內(nèi)置函數(shù)——__import__ 的使用方法
本篇文章主要介紹了Python內(nèi)置函數(shù)——__import__ 的使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
Python Pygame實戰(zhàn)之憤怒的小鳥游戲?qū)崿F(xiàn)
《憤怒的小鳥》其實活得還不錯,盡管我們一直在嘲笑它的IP帝國夢做得太大。但要知道,把休閑益智游戲的生意做到這個份上的,恐怕也就獨此一家了。本文將利用Pygame實現(xiàn)這一游戲,需要的可以參考一下2022-04-04

