本期为python爬虫实践的第四节,传送门:
Python爬虫实践(1)--大数据时代的数据挑战
Python爬虫实践(2)--非结构化数据与爬虫
Python爬虫实践(3)--了解网络爬虫背后的秘密
![569a3b3e37ccbae0121254f00b6684dc.png](https://i-blog.csdnimg.cn/blog_migrate/dda3cb13b12cc479068e952de50bb8fb.jpeg)
蜘蛛程序
在已经把所有的开发环境都配置好之后,便可以开始抓取我们想要的网页信息。通过使用浏览器的开发者工具去观察,我们已经知道,这个网页获取的方法是通过HTTP的GET方法,那么我们所要编程的程序也就是模拟同样的过程去抓取这个网页。
![33c44c564b5b6bc28a6be72005c90a18.png](https://i-blog.csdnimg.cn/blog_migrate/c33d2452f822a21fa7783d832396909a.jpeg)
GET方法
我们需要使用requests模块,首先在代码中引入requests模块。requests模块可以帮助我们去截取我们想要的网页信息,这个模块的前辈是Urllib2,requests模块改善了Urllib2的缺点,让使用者以最为简单的方法获取网络资源。
import requests
在引入模块后,我们编写下面的python代码。
res = requests.get('https://tech.sina.com.cn/')print(res.text)
代码解读:我们使用requests的get方法去获取目标网址的信息,将信息返回给res这个变量,然后我们将res变量的文本信息输出到屏幕上。屏幕上输出的结果如下图。
![3cdef748c92d25bb937fca8da5816606.png](https://i-blog.csdnimg.cn/blog_migrate/a09f989d93c281b08d5caa4246d740b3.jpeg)
输出结果
输出结果中的中文汉字全部都是乱码,此时我们需要修改一下代码,查看res的编码类型,代码如下:
import requestsres = requests.get('https://tech.sina.com.cn/')print(res.encoding)
输出结果为:ISO-8859-1
![b8abc9c96cc52616ceb99f3bd558a8a9.png](https://i-blog.csdnimg.cn/blog_migrate/c193deca77718740b8b2a7ddf387327a.jpeg)
编码
接下来,我们只需要去改变这个编码为utf-8就可以了,有关于为什么会出现乱码的原因,可查看小编的这个视频教程,这里我们就不再做讲解。Python编程基础,程序为什么会乱码
修改后的代码为:
import requestsres = requests.get('https://tech.sina.com.cn/')res.encoding='utf-8'print(res.text)
运行结果为:
![f96a815546ebca01a5214d1409cf3b61.png](https://i-blog.csdnimg.cn/blog_migrate/722af96cb17520f5835fe97f0d8929b8.jpeg)
运行结果无乱码
到这里,我们的第一个爬虫程序就编写完成了,但这个程序仅仅是将网页上非结构化数据全部爬取下来,在下一期的教程中,我们将讲解如何在这些信息中去提取我们想要的数据。
额外补充:如果在引入requests模块之后,执行程序报错,提示我们没有引入该模块,我们可以这样操作。
![504050ec2d6111464145772652ff6535.png](https://i-blog.csdnimg.cn/blog_migrate/c3a26150df8f3c5ed48c61639083d1b6.jpeg)
找到设置
![25ebc0f88a6438644842de0c04576fbf.png](https://i-blog.csdnimg.cn/blog_migrate/662d37c5c6c23ada35d9ffe42942ba9f.jpeg)
添加模块
![aef93d5cec8002e64a51774c4eeea0ba.png](https://i-blog.csdnimg.cn/blog_migrate/e3fe43c2bf0c8b46f03a5f5317b206fc.jpeg)
通过搜索找到对应模块,进行添加