爬虫笔记1 requests获取网页源代码与正则表达式处理文本

@兰博怎么玩儿
接触爬虫不久,特利用此笔记记录一下爬虫学习过程和心得,如有错误请批评指正。

本文介绍:开发爬虫的一些基本的准备以及利用requests库获取网页源代码;接着介绍如何使用正则表达式处理爬取到的源代码信息。最后展示一个实例:利用正则表达式,爬取小说《斗破苍穹》(http://www.doupoxs.com/doupocangqiong/)的所有章节,并按章节存储在本地不同的txt文件中。

1、准备

  • python版本 3.5.0 + 任意一款python编译软件 + Chrome浏览器
  • 安装第三方库:我用的是pip方式安装,在命令行cmd中输入:
pip install #packagename

其中,#packagename为安装库的名称

2、requests的使用

python利用requests库来访问网页,常用的方式有两种:Get与Post方式。前者是直接通过网址访问网页,较为常用;后者访问的是网页从某个网页的链接跳转而来。打开Chrome浏览器,按F12进入开发者工具,“Network-Headers”选项卡里的General中可以看到目标网页的访问方式。
此网页使用的是Get方式

  • Get方式
import requests
wb_data = requests.get(url,headers=headers)

其中,url是目标网站的网址,headers为请求头。
若请求成功,我们打印wb_data得到的是:

<Response [200]>    

此外,请求状态值还可以是:303重定向、400请求错误、401未授权、403禁止访问、404文件未找到、500服务器错误。

有时候为了防止目标网站检测到你使用爬虫程序而拒绝访问,通常使用请求头让程序伪装成浏览器访问网站。按F12进入开发者工具,“Network”选项卡里的Request Headers中的内容就是请求头:
在这里插入图片描述
请求头以字典的形式表示,通常我们只需要User-Agent这一项便可以正常访问,但是建议使用请求头的全部内容。

有时候要对获取的网页进行编码操作,使一些中文等内容正常显示:

import requests
wb_data = requests.get(url,headers=headers).content.decode('GBK')

其中解码方法decode(),在省略参数的时候默认是"UTF-8"编码格式,将content()方法得到的bytes型网页解码成字符串型的源代码。"UTF-8"也是最为常见的编码格式,具体网站那种格式编码,一般显示在源代码最开始的地方。

  • Post方式
    有时候目标网站需要提交某些数据才能访问,这时需要Post方法:
import requests
data={
   'name'
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值