Python小工具-根據(jù)輸入關(guān)鍵字自動打開百度搜索結(jié)果的第一頁

PythonBaidu.gif

步驟分析:

1. 偽裝瀏覽器的 User-Agent
2. 讀取輸入?yún)?shù)并組裝為請求參數(shù)
3. 使用 `requests` 模塊請求數(shù)據(jù)
4. 使用 `bs4` 查找需要的鏈接數(shù)據(jù)
5. 使用`webbrowser`模塊 打開鏈接。

代碼如下:

# -*- coding: UTF-8 -*-
import requests, sys, webbrowser, bs4

#偽裝瀏覽器頭
def camouflageWrowser():
    reload(sys)
    sys.setdefaultencoding('utf-8')
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0'}
    return headers

# 讀取輸入?yún)?shù)并組裝為搜索用的參數(shù)
def readInputParameterAndFormat():
    searchWorld =  ' '.join(sys.argv[1:])
    payload = {'wd':u'%s'%searchWorld}
    print("searchWorld = " + searchWorld)
    return  payload

# 搜索關(guān)鍵字
def requestsWithParameter(headers,parameter):
    url = 'http://www.baidu.com/s'
    r = requests.get(url, params=parameter, headers=headers, timeout=5)
    return r

# 查找需要的內(nèi)容
def findNeedResult(request):
    # 查找需要的內(nèi)容
    soup = bs4.BeautifulSoup(request.text,"html.parser")
    linkElems = soup.select('.result > .t > a[href]')
    topLinkElems = soup.select('.result-op > .t > a[href]')
    return linkElems + topLinkElems

# 打開全部搜索結(jié)果
def openElement(el):
    webbrowser.open(el.get('href'))


#偽裝瀏覽器頭
headers = camouflageWrowser()
# 讀取輸入?yún)?shù)
payload = readInputParameterAndFormat()
# 請求關(guān)鍵字?jǐn)?shù)據(jù)
r = requestsWithParameter(headers,payload)
# 解析返回的結(jié)果
linkElems =  findNeedResult(r)

for el in linkElems:
    openElement(el)

這個是好久之前的了。。Python3 的寫法跟這個又不一樣。
倒入 import importlib
然后把 reload(sys) 替換我 importlib.reload(sys)
sys.setdefaultencoding('utf-8') 這行代碼可以不要了

# -*- coding: UTF-8 -*-
import requests, sys, webbrowser, bs4
import importlib

#偽裝瀏覽器頭
def camouflageWrowser():
    #reload(sys)
    importlib.reload(sys)
    #sys.setdefaultencoding('utf-8')
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0'}
    return headers

# 讀取輸入?yún)?shù)并組裝為搜索用的參數(shù)
def readInputParameterAndFormat():
    searchWorld =  ' '.join(sys.argv[1:])
    payload = {'wd':u'%s'%searchWorld}
    print("searchWorld = " + searchWorld)
    return  payload

# 搜索關(guān)鍵字
def requestsWithParameter(headers,parameter):
    url = 'http://www.baidu.com/s'
    r = requests.get(url, params=parameter, headers=headers, timeout=5)
    return r

# 查找需要的內(nèi)容
def findNeedResult(request):
    # 查找需要的內(nèi)容
    soup = bs4.BeautifulSoup(request.text,"html.parser")
    linkElems = soup.select('.result > .t > a[href]')
    topLinkElems = soup.select('.result-op > .t > a[href]')
    return linkElems + topLinkElems

# 打開全部搜索結(jié)果
def openElement(el):
    webbrowser.open(el.get('href'))


#偽裝瀏覽器頭
headers = camouflageWrowser()
# 讀取輸入?yún)?shù)
payload = readInputParameterAndFormat()
# 請求關(guān)鍵字?jǐn)?shù)據(jù)
r = requestsWithParameter(headers,payload)
# 解析返回的結(jié)果
linkElems =  findNeedResult(r)

for el in linkElems:
    openElement(el)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容