Python小工具-根据输入关键字自动打开百度搜索结果的第一页

PythonBaidu.gif

步骤分析:

1. 伪装浏览器的 User-Agent
2. 读取输入参数并组装为请求参数
3. 使用 `requests` 模块请求数据
4. 使用 `bs4` 查找需要的链接数据
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

# 读取输入参数并组装为搜索用的参数
def readInputParameterAndFormat():
    searchWorld =  ' '.join(sys.argv[1:])
    payload = {'wd':u'%s'%searchWorld}
    print("searchWorld = " + searchWorld)
    return  payload

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

# 查找需要的内容
def findNeedResult(request):
    # 查找需要的内容
    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

# 打开全部搜索结果
def openElement(el):
    webbrowser.open(el.get('href'))


#伪装浏览器头
headers = camouflageWrowser()
# 读取输入参数
payload = readInputParameterAndFormat()
# 请求关键字数据
r = requestsWithParameter(headers,payload)
# 解析返回的结果
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

# 读取输入参数并组装为搜索用的参数
def readInputParameterAndFormat():
    searchWorld =  ' '.join(sys.argv[1:])
    payload = {'wd':u'%s'%searchWorld}
    print("searchWorld = " + searchWorld)
    return  payload

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

# 查找需要的内容
def findNeedResult(request):
    # 查找需要的内容
    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

# 打开全部搜索结果
def openElement(el):
    webbrowser.open(el.get('href'))


#伪装浏览器头
headers = camouflageWrowser()
# 读取输入参数
payload = readInputParameterAndFormat()
# 请求关键字数据
r = requestsWithParameter(headers,payload)
# 解析返回的结果
linkElems =  findNeedResult(r)

for el in linkElems:
    openElement(el)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容