必应搜索:
使用库:requests;bs4
目标:

  • 分析必应的url
  • 获取信息,解析为BeautifulSoup对象
  • 提取信息,输出信息
  • 源代码放在最后

1.分析URL:

https://cn.bing.com/search?#搜索URL
q=000#搜索内容
form=ANNTH1#国内版ANNTH1、国际版BESBTB
......#其余参数为特殊的验证码,不影响结果

建立 类 bi:

import requests
from bs4 import BeautifulSoup
class bi:def make_url(self,q):return 'https://cn.bing.com/search?q=' + q

2.获取信息:
右键检查,我们发现所有信息都位于第一个’ol’标签中。

class bi:def find(self):u = self.make_url(q)#构造URLr = requests.get(u)#发送GET请求获取信息soup = BeautifulSoup(r.text, 'html5lib')#用BeautifulSoup,html5lib进行解析,html5lib需要下载(不需要导入)#pip install html5liball_ = soup.find('ol')#第一个<ol>a=all_.find_all('li')#<ol>下所有<li>存储到列表return a

3.提取信息:
循环列表提取信息

li架构


介绍文本

标题文本

class bi:def get(self,q):a=self.find()things = []for tag in a:try:item1 = tag.find(class_='b_title')url = item1.find('h2').find('a')['href']#页面的网址icon = item1.find('a').find('img')['src']# 页面的图标title = item1.text#只需要其中的文本内容item2=tag.find(class_='b_caption')text=item2.find('p').text#介绍内容thing = {'title': title, 'url': url, 'text':text, icon: 'icon'}#把信息存入字典things.append(thing)#把字典加入列表except:pass#有的信息架构特殊,使程序不报错return things

4.old源代码:

import requests
from bs4 import BeautifulSoup
class bi:def make_url(self,q):return 'https://cn.bing.com/search?q=' + qdef find(self):u = self.make_url(q)#构造URLr = requests.get(u)#发送GET请求获取信息soup = BeautifulSoup(r.text, 'html5lib')#用BeautifulSoup,html5lib进行解析,html5lib需要下载(不需要导入)#pip install html5liball_ = soup.find('ol')#第一个<ol>a=all_.find_all('li')#<ol>下所有<li>存储到列表return adef get(self,q):a=self.find()things = []for tag in a:try:item1 = tag.find(class_='b_title')url = item1.find('h2').find('a')['href']#页面的网址icon = item1.find('a').find('img')['src']# 页面的图标title = item1.text#只需要其中的文本内容item2=tag.find(class_='b_caption')text=item2.find('p').text#介绍内容thing = {'title': title, 'url': url, 'text':text, icon: 'icon'}#把信息存入字典things.append(thing)#把字典加入列表except:pass#有的信息架构特殊,使程序不报错return thingsif __name__=='__main__':n=bi()a=input('Bing\n必应搜索:')for i in n.get(a):print(i['title'])print(i['url'])print(i['text'])print('_'*100+'\n')

5.new源代码

import requests
from bs4 import BeautifulSoup
class bing:def __init__(self):'''bing请求类Dict:headerFunction:__init__(self)make_url(self,q,data='chinese',pagenum='1')jx(self,url)Returns-------None.'''self.header = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.76'}def make_url(self,q,data='chinese',pagenum='1'):'''生成必应urlParameters----------q : str关键字data : str, optional'chinese' or 'english'. The default is 'chinese'.pagenum : str, optionalThe default is '1'.Returns-------url.'''if data != 'chinese' and data != 'english':assert data != 'chinese' and data != 'english', '不支持中英文以外的文字'if data == 'chinese':urls = 'https://cn.bing.com/search?q='+q+'&form=ANSPH1'elif data == 'english':urls = 'https://cn.bing.com/search?q='+q+'&FORM=BESBTB&ensearch=1'if pagenum == '1':return urlsr = requests.get(urls,headers = self.header)s = BeautifulSoup(r.text,'html5lib')page = s.find('li',class_ = 'b_pag')pages = page.find_all('li')pageurls = {}for i in pages:try:pageurls[i.text] = i.find('a')['href']except:passtry:return pageurls[pagenum]except:return urlsdef jx(self,url):'''请求并解析urlParameters----------url : strusually from function make_url.Returns-------None.'''r = requests.get(url,headers = self.header)s = BeautifulSoup(r.text,'html5lib')lis = s.find_all('li',class_ = 'b_algo')rlist = []# data = {'title':'','js':'','url':'','icon_url':''}for i in lis:data = {}data['title'] = i.find('div',class_ = 'b_title').find('h2').textdata['url'] = i.find('div',class_ = 'b_title').find('h2').find('a')['href']try:data['js'] = i.find('p').text # .find('div',class_ = 'b_caption')except:data['js'] = 'no js'try:data['icon_url'] = i.find('div',class_ = 'b_title').find('a').find('div',class_ = 'rms_iac')['data-src']except:data['icon_url'] = 'no icon'rlist.append(data)return rlistif __name__ == '__main__':         k = bing()url = k.make_url('bs4')rlist = k.jx(url)for i in rlist:for j in i:print(i[j])print('\n')

python 必应搜索教程相关推荐

  1. python elasticsearch 入门教程(二) ---全文搜索

    python elasticsearch 入门教程(二) ---全文搜索 截止目前的搜索相对都很简单:单个姓名,通过年龄过滤.现在尝试下稍微高级点儿的全文搜索--一项 传统数据库确实很难搞定的任务. ...

  2. html 必应网搜索,教程:创建自定义搜索网页 - 必应自定义搜索 - Azure Cognitive Services | Microsoft Docs...

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 教程:构建自定义搜索网 ...

  3. python 异步爬取必应搜索结果

    简单的通过异步来爬取必应搜索结果,速度非常可观. 通过用 aiohttp, asyncio这两个异步模块,再通过xpath来提取链接. 加个cookie可以防止爬虫被禁 import aiohttp ...

  4. python爬取图片教程-推荐|Python 爬虫系列教程一爬取批量百度图片

    Python 爬虫系列教程一爬取批量百度图片https://blog.csdn.net/qq_40774175/article/details/81273198# -*- coding: utf-8 ...

  5. python详细安装步骤-Pycharm及python安装详细教程(图解)

    首先我们来安装python 1.首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/ ),进入之后如下图,选择图中红色圈中区域进行下载. 2 ...

  6. python新手入门教程-终于知晓python新手练习教程

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.作为今年来越来越流行的语言,我们该如何学习或者转行学习Python呢,这里小迹为大家介绍如何入门学习Python.以下是小编为你整理 ...

  7. python详细安装教程linux-Linux系统如何安装Python?新手教程

    新手入门Python的第一步就是要在你的计算机上安装好Python.有些人可能要问了,Linux系统如何安装Python?本文为你准备了一份新手安装Python的教程,几乎是手把手教你如何操作,你只要 ...

  8. 字字谏言!Python入门学习教程:关于Python不得不说的事儿

    作为程序员,你肯定遇到过这样的领导: "别人还没走,你先走了不合适吧." "不能确定功劳,总得有苦劳吧!你看别人9点谁走了?" 说到996,这很有可能是诱因之一 ...

  9. linux python安装教程_Linux系统如何安装Python?新手教程

    新手入门Python的第一步就是要在你的计算机上安装好Python.有些人可能要问了,Linux系统如何安装Python?本文为你准备了一份新手安装Python的教程,几乎是手把手教你如何操作,你只要 ...

  10. python全免费教程-python教程免费

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 使用步骤在 cvm 上部署好 python 环境及 python-mem ...

最新文章

  1. java里面有控制器吗_java怎么运行控制器里的类 java控制台输入类以及
  2. SAP RETAIL 基于分配表创建采购订单的时候按工厂拆分?
  3. vscode使用教程python-如何在VSCode上轻松舒适的配置Python的方法步骤
  4. UVALive 6467 Strahler Order 拓扑排序
  5. linux插光驱自动重启,Linux两种光驱自动挂载的方法
  6. Python 十六进制转Base64_python基础day03笔记
  7. css——模态框【遮罩层的制作;信息层;往白色的块里添加表单】
  8. 每日程序C语言42-带头结点的尾插法创建链表
  9. 苹果显示已连接网络连接到服务器异常,苹果确认iphone密码,显示连接服务器出现问题,为什么...
  10. mysql内存机制_MySQL内存管理机制
  11. DataNode之DirectoryScanner分析
  12. 如何用代码编写四则运算?
  13. VoIP五个不为人知的秘密
  14. C++ 中的sort()排序函数用法
  15. java web课程设计工资管理系统_javaweb教师绩效工资管理系统
  16. 魅族插了卡显示无服务器,魅族手机SD卡无法读取怎么办解决方案
  17. python四则运算表达式,用Python自动生成小学四则运算题目2.0版
  18. yum install 命令报错Could not retrieve mirrorlist
  19. Mac邮件客户端(Edison Mail)的功能特点
  20. 嵌入式 linux 屏 翻转,linux下如何把屏幕设置成竖屏

热门文章

  1. Java图片文件合成器(文件操作)
  2. python毕业设计项目源码选题(14)校园失物招领系统毕业设计毕设作品开题报告开题答辩PPT
  3. html如何开发影音播放器app,js HTML5多媒体影音播放
  4. Module not specified
  5. [报表篇] (11)设置印刷尺寸
  6. [NOI 2010]航空管制
  7. 保罗.沃尔克:世界经济“有控制地解体”
  8. 科研为什么需要甘特图
  9. Threejs实现3d地球记录(5)
  10. 很好奇这个背景图片,盯着看能感受到裸眼3D有没有