python以某种编码进行打印_简单Python爬虫教程 (二)

1f0bae0a8e5723f486bd469b06132cb4.png

简单Python爬虫教程

前面一篇文章《简单Python爬虫教程 (一)》简单介绍了爬虫的准备工作,安装第三方库,也给出了一个例子,这篇文章主要就是展示,这个例子是怎么写出来的。

介绍下为什么选择小说网站的页面,而不是其他的页面,首先就是小说网站的页面简单不复杂,简单意味着规律简单很容易找到,不复杂意味着我们处理起来不复杂,更容易获取我们要的内容。第二点,小说获取的页面内容是文本文件,我给的代码直接打印出来了,可以保存到文本文件中,爬取的内容处理起来简单。第三点,就是适合新入门的人学习,小说网站大多数情况是静态页面,请求一次获取全部的内容,不想动态页面,也没有ajax,很适合初学者进行练手。多的不说了,开始进入练手阶段。

61c6e4f55a564bb2c082d8c0623689bb.png

首先就是选择游览器,网络上游览器很多种,IE、Chrome、火狐、UC、360等,一般开发WEB应用的时候,根据甲方提供的需求确定我们我们用什么游览器。但是作为一个程序员,我推荐用Chrome或者火狐,适用性更好一些。我这篇文章是采用的Chrome。开始写代码引入包,通过request.get()方法获取连接内容,我们打印一下。

>>> import requests>>> req = requests.get('http://www.huanyue123.com/book/37/37849/22075553.html')>>> print(req) #直接打印是一个response对象 所以 我们要打印他的 文本>>> print(req.text)
c7f3663418d97de958e0c56e05b74abd.png

我用的是IDE ,文字比较多,双击才能看,有的时候回出现乱码,可以在打印req.text之前先进行编码操作 如下图

req.encoding = 'GBK' #编码

有人肯定会问为啥是GBK呀,在爬取网页当前页上按F12(mac 右击鼠标点击检查),Ctrl+f 搜索 charset 即可知道答案。如下图:

649b97207748a55a508983fb71a84e66.png

req.text 打印的是当前页面中所有的文本内容有,很多不是我们想要的,所以得想办法把我们想要的取出来。

还是开发者模式这个功能如图下:截图很清楚,不再赘述了。

54d6c6d12fd03123b223899db3ec5bfc.png

看到红框3中的,我想要的文本都在这个

...
中,所以我们想办法取出这个div中的文本就可以了,最好想的方法就是正则表达式了,但是正则表达式实施起来比较麻烦,这里不考虑了,其实上篇已经展示了,可以通过beautifulsoup4转化成一个html,然后 bf.find_all('div', class_ = 'contentbox clear') 这个方法获取到所需要的文本。整个思路就是如此,代码整理如下:
# -*- coding: utf-8 -*-import requestsfrom bs4 import BeautifulSoupreq = requests.get('http://www.huanyue123.com/book/37/37849/22075553.html')#打开网页#req.encoding = 'GBK' #编码html = req.text #获取连接的响应报文bf = BeautifulSoup(html ,'lxml') #按照 lxml报文解析texts = bf.find_all('div', class_ = 'contentbox clear') #找到div格式 contentbox clearprint(texts[0].text) #打印日志
ffb89ef1a7045f58ee8d1fa89358d079.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值