需求:

如何用python代码实现百度搜索关键词的功能?

比如输入关键词:“python爬虫”,得到一个搜索结果的页面,并保存到本地。

这是经典的python爬虫教学案例之一,也是比较基础的python实现。今天主要通过python自带的urllib库实现。

实现的步骤有三:

第一步:实践。打开百度搜索,输入关键词搜索一下。

第二步:观察。查看链接,找到链接中的规律。

将链接复制出来,如下:

看到这么一长串是不是挺吓人的?!

其实越是复杂的东西越是纸老虎。通过观察,这个链接中关键信息只有划线的一小部分:

为什么这么说?

因为如果你把剩下的信息删除,再去搜索也能得到同样的搜索结果。换句话说,其他的信息可有可无。

其实仔细观察,你会发现这个链接中有很多“&”符号,&的作用就是将不同的字段连接起来,组成一串完整的url,这些字段就像一张表单的表头一样,有些是必须填的,比如"wd=..."这个字段,就是关键词的意思,“ie=utf-8"就是一个编码的字段,采用utf-8编码。

那怎么判断哪些是关键信息?哪些是可有可无的字段呢?

很简单,你把你认为不重要的字段删除后,如果还能够实现搜索,就说明这个字段是不重要的。

另外,你可能会疑惑,明明关键词输入的是“python爬虫”,为什么链接里面变成“wd=python%E7%88%AC%E8%99%AB”了呢,因为中文在搜索的时候被自动转换编码了。我们在写代码的时候也要注意,如果输入的关键词里有中文,则需要对关键词处理一下,可以通过urllib.request.quote( )处理。

第三步:编写代码

首先,导入urllib库中的request,

接着,设定关键词,因为关键词里面有中文,用quote( )方法进行转码;

然后,构造url,我们发现wd就是关键词的接口,所以url部分只要加上keyword关键词即可;

再然后,就可以阿通过Request( )封装成request请求,再通过urlopen( )提交给服务器,并返回响应结果。

最后,通过open( ),write( )方法将页面保存到本地,关闭文件。

需要特别注意的是:构造url的时候,是http,不是https。因为https是网络的安全协议模式,需要有证书才能返回响应,在没有证书的情况下是不会返回结果的。

python搜索关键词自动提交_简单爬虫:调用百度接口,实现关键词搜索(python_003)...相关推荐

  1. python搜索关键词自动提交_python+selenium实现自动化百度搜索关键词

    原博文 2019-07-22 14:10 − 通过python配合爬虫接口利用selenium实现自动化打开chrome浏览器,进行百度关键词搜索. 1.安装python3,访问官网选择对应的版本安装 ...

  2. 手写板JAVA调用_手写板 (调用百度接口)

    落日赌城 #sx{color:#00C;text-decoration:underline;cursor:pointer;} 手写 var w = window,d = document,n = na ...

  3. python实例练习(15)搜索关键词自动提交

    文章目录 简介 问题概述 完整代码实现 简介 搜索引擎是日常需要使用的工具,也是访问互联网的门户.不管你是否愿意承认,尽管搜索一个新鲜玩意儿已经是各位读者的日常,但有时候忙到会希望能够自动向搜索引擎提 ...

  4. Python调用百度接口(情感倾向分析)和讯飞接口(语音识别、关键词提取)处理音频文件...

    本示例的过程是: 1. 音频转文本 2. 利用文本获取情感倾向分析结果 3. 利用文本获取关键词提取 首先是讯飞的语音识别模块.在这里可以找到非实时语音转写的相关文档以及 Python 示例.我略作了 ...

  5. python搜索关键词自动提交_Python自动搜索关键词采集信息—以京东为例!

    一.操作步骤 如果网页上有搜索框,但是搜索结果页面没有独立网址,想要采集搜索结果,直接做规则是采集不到的,要先做连续动作(输入+点击)来实现自动输入关键词并搜索,然后才能采集数据.下面用京东搜索为例, ...

  6. python爬虫ip限制_简单爬虫,突破IP访问限制和复杂验证码,小总结

    简单爬虫,突破复杂验证码和IP访问限制 好吧,看题目就知道我是要写一个爬虫,这个爬虫的目标网站有一些反爬取意识,所以就有了本文了. 我先说说场景吧: 由于工作需要,平时有一大堆数据需要在网上查询,并归 ...

  7. pythonurllib登录微博账号_简单爬虫实现登录新浪微博(python2.7)

    因为图论作业,所以要写一个爬虫,就开始学python.接触python开始,就觉得这个语言非常舒服,不需要定义变量,不需要分号,非常简洁. 下面就聊聊,我写爬虫的经历.上网搜了一下爬虫的代码,发现简单 ...

  8. [转载] python中的且语句_简单探讨python中的语句和语法

    参考链接: 在Python中解包:并行分配之外 python程序结构 python"一切皆对象",这是接触python听到最多的总结了.在python中最基层的单位应该就是对象了, ...

  9. python kafka offset自动提交_Spring-Kafka —— 实现批量消费和手动提交offset

    spring-kafka的官方文档介绍,可以知道自1.1版本之后, @KafkaListener开始支持批量消费,只需要设置batchListener参数为true 把application.yml中 ...

最新文章

  1. 十一月第三周学习进度条
  2. nacos 配置动态刷新_nacos配置中心修改后刷新
  3. Spring Cloud Alibaba 统一门户:基于网关的统一用户认证方案
  4. 通信数字信号处理基本知识
  5. 写的很好!细数 Java 线程池的原理
  6. HTTP中response响应数据获取
  7. NorthWest University - Medical Engineering
  8. 信号的时频分析MATLAB,[转载]时频特性分析(Matlab)
  9. Java判断两个Date是不是同一天
  10. 概率论基础知识各种分布
  11. flex4.5新特征
  12. 阿姆达尔定律(Amdahl's law)
  13. 生产排程系统_【经典文章】漫谈生产计划排程与控制系统
  14. 同步、异步、阻塞与非阻塞给你说得明明白白
  15. #CSDN软件工程师能力认证学习精选# NoSql是什么?
  16. 利用Xshell修改Linux默认SSH端口号等详细配置
  17. 在vue中使用canvas实现简单特效(下雨天)
  18. Android 小知识:startActivity 与 finish 的调用顺序
  19. 苹果手机数据线充不了电_深圳苹果手机数据线多少钱一条
  20. Elastic-Job开发指南

热门文章

  1. Winform 初识记录
  2. Property 'filter' does not exist on type 'Observable' 报错解决方法
  3. 计算机编码中进制的区别,计算机中的进制和编码(转载)
  4. python的dataframe的groupby_python pandas.DataFrame.groupby()方法详解
  5. Object.preventExtensions()使用技巧
  6. win10下安装mysql5.6 zip形式步骤
  7. RN与原生交互(一)——基本页面跳转
  8. python中casefold()函数的用法
  9. 机器学习基础-朴素贝叶斯分类
  10. 使用kNN算法实现简单的手写文字识别