python爬虫程序_python第六天 ---第一个爬虫程序

什么叫做爬虫

百度百科的解释是,按照一定的规则,自动地抓取万维网信息的程序或者脚本。

那么,爬虫工作的目的就是爬取网页,也就是html。

那么我们学习爬虫肯定就是要先学习,如何爬取整个网页的html页面。

那么今天就定个目标,能够爬取一个网站的html代码。

requests模块

由于我们第一天安装了Anaconda,conda就为我们集成好了这个模块,控制台输入conda list requests就可以查看。

14e08b725fdc560ffb10d1037cfd3b86.png

如果没有安装Anaconda 就需要在控制台输入 pip install命令来下载。

下面用requests爬取一个网页的页面

import requests                           #引入requests模块
url ='http://www.sand-sculpture.com/index.html'       #想要爬取的网页链接
resopnse = requests.get(url)                          #通过requests get请求网页获取响应的页面
resopnse.encoding="gbk"                               #设置编码格式
html = resopnse.text                                  #获取页面html
print(html)

51d93368315227f09c7af1fdf0b251ea.png
requests get请求图

resopnse.encoding="",这个引号里面填的是什么编码格式呢,就是我们鼠标右击网页,查看页面源代码,或者使用开发者工具展开head所看到的 <meta>标签下的 charset属性设置的值。

90cb5a2255b83db48ca578d806da574a.png
右击网页查看源代码

54dda6eb67dcb00870a5d4f72483a38f.png
开发者工具展开head标签

带参数的get请求

以某小说网站搜索页面为例 https://www.biqugex.com/

175045f3fd4d667ff5215ae91047d802.png

点击搜索之后会跳转到下面的页面

4fae04151286ce73d9b8c8668a3e1ff7.png

他得url 变成了 https://so.biqusoso.com/s.php?ie=gbk&siteid=biqugex.com&s=9157106854577873494&q=%B7%B2%C8%CB%D0%DE%CF%C9%B4%AB

我们不难看到问号?将url分成了两个部分,问好右面的就是参数,&分割参数如参数,=左侧是键,右边是值。我们如果用爬虫爬取这个页面的话就必须对get请求传参。

f7607ba8b218b40c6aa76fb49415e89e.png

这边是使用的字符串拼接法,实现的带参请求,实际上get方法本身也是可以带参传值的,参考 快速上手 - Requests 2.18.1 文档

下面会解释一下 from urllib import parse里的内容

涉及urllib.parse的用法

从大模块引入小模块的语句:from ... import ...(以后还会遇到)

为什么要引入parse这个模块呢?

为了把中文的字符串,上图中的query ="凡人修仙传",转换成url编码。

下图q=后面紧跟的一截由字母和百分号构成的串就是url编码

420306d87918a14c8318bde42fa12c0c.png

但是从字符串变成url编码有多种形式,有按照utf-8去编码的,还有按照gb2312去编码的。

所以我们要先确定q的编码方式。

我们打开站长之家 http://tool.chinaz.com/tools/urlencode.aspx ,做一个对比

e33c8059a7b4e1841e50f32816ff13c4.png

发现网站的q是GB2312编码方式。

利用parse转换编码

9f24a1d956147710defdad70ab975703.png
from urllib import parse
query = "凡人修仙传"
q = parse.quote_from_bytes(query.encode("gb2312"))
print(q)

只要记住转换编码的方法就行了,不需要怎么高的理解。

想要了解更多的关于urllib.parse,可以访问一下

https://www.jianshu.com/p/e7d87e1ed38c​www.jianshu.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值