【开门见山】

最近整理了下之前做过的项目,学的东西不少,乱七八糟。打算写点关于 Python 爬虫的东西,新人一枚,还望大佬们多多担待,别把我头给打歪了。

前面我先磨叽磨叽些基础的东西,对爬虫新人友好些,总代码在最后,直接 Ctrl + C就好。

工具篇:

我们需要两个工具,分别是这两个玩意:PyCharmGoogle 浏览器

PyCharm
Google 浏览器

我用的版本是PyCharm 5.0.3Python 3.6.6

教学开始!

第一步,打开 PyCharm

第二步,打开 Google 浏览器

第三步,开始分析

抓取百度搜索关键词后的页面源代码分为五步走:

1、获取想要抓取的信息

2、如果想获取的信息为中文,则需要进行url编码

3、进行拼接页面的真实 url (url指的是网址,后面就直接写url了)

4、通过下载器模块抓取网页信息

5、将获取的网页源代码保存为 html 文件存储到本地

一、Python爬虫的下载器

分为两种urllib.requestrequests

urllib.request——python2版本中的升级版

requests——python3中的新版本

这里直接使用 import语句导入就好,轻松方便,多省事

二、使用 urllib.request

讲讲几个比较常用的玩意:

1)urllib.request.urlopen(url):对网页发起请求并获取响应

示例代码:

2)urllib.request.Request(url,headers)创建请求对象

示例代码:

三、理智分析

我们来尝试用百度搜索点东西,比如:

我们来复制下会看到
Bilibili:

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=Bilibili&oq=%25E7%25AF%25AE%25E7%2590%2583&rsv_pq=83f19419001be70a&rsv_t=4115%2F8nYNTS0ycM92Jyo7EyG93G5SsWNuSPyrV5xFkZ2RPcEpqYZWJVokzM&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_sug3=11&rsv_sug1=8&rsv_sug7=100&rsv_sug2=0&inputT=7505&rsv_sug4=7789

b站:

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=B%E7%AB%99&oq=Bilibili&rsv_pq=a2665be400255edc&rsv_t=5c8aBmClupFcVXiNpBa79qMXk3UM6qIj614z6VmEmtJHhkeIvp7hddX9oio&rqlang=cn&rsv_enter=1&rsv_dl=tb&inputT=7100&rsv_sug3=22&rsv_sug1=17&rsv_sug7=100&rsv_sug2=0&rsv_sug4=7455

我们仔细一瞅···

这特喵的一毛一样,关键在哪里?


没错,它把‘站’字进行 url编码了,这就好办了

四、url编码模块 urllib.parse

我们用这玩意来干掉它。还是来讲讲常用的玩意

1)urllib.parse.urlencode() url编码

示例代码:

运行结果:

2)urllib.parse.quote(字符串) url编码

示例代码:

运行结果:

3)urllib.parse.unquote(url编码) 对url编码进行反编码

示例代码:

运行结果:

五、最后一步

看到这相信大部分人都懂了,问题迎刃而解。我们要搜索 “B站” 无非就是 https://www.baidu.com/s?&wd=B站 同理也就是https://www.baidu.com/s?&wd=B%E7%AB%99

抓取百度搜索关键词后的页面源代码程序代码:

import urllib.requestimport urllib.parsekey=input("请输入您要查询的内容:")  # 获取想要搜索的信息key={"wd":key}data=urllib.parse.urlencode(key) # 对关键字进行url编码base_url="https://www.baidu.com/s?" #搜索网页的默认urlurl=base_url+data #拼接得到真实的urlheaders={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"}req=urllib.request.Request(url,headers=headers) #创建请求对象res=urllib.request.urlopen(req) #对网页发起请求并获取响应html=res.read().decode("utf-8")with open("百度.html","w",encoding="utf-8") as f:f.write(html)

总结:

我们把这个项目分为了五步:

一、获取想要抓取的信息
key=input("请输入您要查询的内容:")
二、如果想获取的信息为中文,则需要进行 url编码
key={"wd":key}data=urllib.parse.urlencode(key)
三、进行拼接页面的真实 url
base_url="https://www.baidu.com/s?" #搜索网页的默认urlurl=base_url+data #拼接得到真实的url
四、通过下载器模块抓取网页信息
headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"}req=urllib.request.Request(url,headers=headers) #创建请求对象res=urllib.request.urlopen(req) #对网页发起请求并获取响应
五、将获取的网页源代码保存为 html 文件存储到本地
html=res.read().decode("utf-8")with open("百度.html","w",encoding="utf-8") as f:f.write(html)

新人报道,互相讨教,其乐融融,妙妙妙

【Python爬虫教学】百度篇·手把手教你抓取百度搜索关键词后的页面源代码相关推荐

  1. python百度贴吧怎么爬取最早的帖子_【Python爬虫教学】百度篇·手把手教你抓取百度贴吧任意贴吧指定范围页数内的源代码...

    开门见山. 懒癌一犯,能拖一天是一天. 好了,亲爱的小伙伴们,我又回来了!今天带来的是抓取输入的任意贴吧,抓取指定范围页数内的源代码. 工具: 依旧是 PyCharm 和 Google 浏览器,pyt ...

  2. Python爬虫:运用多线程、IP代理模块爬取百度图片上小姐姐的图片

    Python爬虫:运用多线程.IP代理模块爬取百度图片上小姐姐的图片 1.爬取输入类型的图片数量(用于给用户提示) 使用过百度图片的读者会发现,在搜索栏上输入关键词之后,会显示出搜索的结果,小编想大多 ...

  3. Python爬虫入门实战之猫眼电影数据抓取(理论篇)

    前言 本文可能篇幅较长,但是绝对干货满满,提供了大量的学习资源和途径.达到让读者独立自主的编写基础网络爬虫的目标,这也是本文的主旨,输出有价值能够真正帮助到读者的知识,即授人以鱼不如授人以渔,让我们直 ...

  4. Python爬虫实践:从中文歌词库抓取歌词

    利用BeautifulSoup库构建一个简单的网络爬虫,从中文歌词库网站抓取凤凰传奇所有曲目的歌词(http://www.cnlyric.com/geshou/1927.html). from url ...

  5. python爬虫如何连接数据库_手把手教你如何在Navicat中如何新建连接数据库及相关报错解决方法...

    前几天给大家分享了如何安装Navicat,没有来得及上车的小伙伴可以戳这篇文章:手把手教你安装Navicat--靠谱的Navicat安装教程.今天给大家分享一下Navicat的简单使用教程,具体的教程 ...

  6. python爬虫教程下载-Python爬虫入门教程!手把手教会你爬取网页数据

    其实在当今社会,网络上充斥着大量有用的数据,我们只需要耐心的观察,再加上一些技术手段,就可以获取到大量的有价值数据.这里的"技术手段"就是网络爬虫.今天就给大家分享一篇爬虫基础知识 ...

  7. Python爬虫入门实战之猫眼电影数据抓取(实战篇)

    项目实战 静态网页实战 本节我们将为大家展现一个完整爬虫的大致过程,此次项目内容为提取猫眼电影TOP100榜中的所有电影信息并存储至CSV文件中,其首页地址为http://maoyan.com/boa ...

  8. Python爬虫教程:简书文章的抓取与存储

    本文内容将与大家一起从简书的文章页面抓取文章标题.作者.发布时间以及正文内容,并且将抓取到的这些信息存入Excel表格中.本文对简书文章的抓取仅为Python的学习交流,尊重作者著作权,不对抓取到的文 ...

  9. Python爬虫4.2 — ajax(动态网页数据抓取)用法教程

    Python爬虫4.2 - ajax[动态网页数据]用法教程 综述 AJAX 介绍 什么是AJAX 实例说明 请求分析 获取方式 实例说明 其他博文链接 综述 本系列文档用于对Python爬虫技术的学 ...

最新文章

  1. python自动化之文件处理_Python自动化办公之Word批量转成自定义格式的Excel
  2. 开源分布式Job系统,调度与业务分离-如何创建一个计划HttpJob任务
  3. 从网页的控制台登录云服务器ECS中的Ubuntu系统
  4. PagingAndSortingRepository接口与 JpaRepository接口
  5. 文件上传错误:Error setting expression 'uploadImage' with value '[Ljava.lang.String;@5ff8a691'...
  6. 如何加强测评机构自身的规范化管理, 不断提高测评的能力和水平
  7. 【HDU - 4990】 Reading comprehension (构造+矩阵快速幂)
  8. 据说这是最受科研人员喜爱的春联
  9. Python数模笔记-StatsModels 统计回归(3)模型数据的准备
  10. MySQL查询优化--细节理论
  11. SpringBoot实践 - SpringBoot+MySql+Redis
  12. 产品读书《自卑与超越》
  13. iPhone屏幕尺寸、分辨率及适配
  14. 二极管压降随电流的变化
  15. 微信小程序Audio音频(有关歌曲和图片的路径)
  16. 微信h5获取用户地址信息
  17. 跨专业考清华大学的计算机,18级学长跨考清华大学计算机考研经验分享
  18. 水平拉滑轮组计算机械效率的题,中考典型题:滑轮组机械效率分类计算(1).doc...
  19. mac m1 安装开发常用软件
  20. O7_DICTIONARY_ACCESSIBILTY

热门文章

  1. ad 新建一个componen的类_Glyphs智能母件:字体设计师的好帮手 Glyphs smart Component: a good helper font designer...
  2. 黑苹果引导工具 Clover 配置详解
  3. MySQL 03、深入浅出索引
  4. 人员考勤,MySQL数据库一个表自动生成3表筛选人员迟到早退缺勤
  5. 李岳恒:2020年的经济趋势研判
  6. 固态硬盘读写速度快的原理是什么?
  7. 三菱梯形图转换c语言软件,三菱梯形图转51单片机软件使用程序超过100步又要使用软件的朋友.pdf...
  8. 人工智能七大应用领域!你难道还没真香吗?
  9. 【车辆计数】基于matlab GUI背景差分法道路行驶多车辆检测【含Matlab源码 1911期】
  10. python黑色背景rbg_PIL图像转换为RGB,保存为纯黑色图像(python)