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

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

作者: 三十一_iOS | 来源:发表于2017-10-26 17:35 被阅读193次
    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)
    
    

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/peikpxtx.html