一、最简单的爬虫(python3 爬虫小白系列文章)

2018-06-23  本文已影响189人  骑着母猪砍大象

转载请注明作者和出处https://www.jianshu.com/p/9a18c52348ea

运行平台: Windows

Python版本: Python3.x

IDE: Pycharm 2017.2.4

阅读文章前,我会默认你已经具备一下几个要素

1.python3安装完毕

Windows:

https://www.jianshu.com/p/7a0b52075f70

Mac:

http://pythonguidecn.readthedocs.io/zh/latest/starting/install3/osx.html

linux:

https://blog.csdn.net/qq_35195390/article/details/79057597

2.具备基本python语法

廖雪峰:

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

菜鸟系列:

http://www.runoob.com/python3/python3-tutorial.html

3.一个能够使用的编辑器

pycharm、sublim


首先,我们来看下面这一段代码

import urllib.request #引入urllib库

response = urllib.request.urlopen("https://tieba.baidu.com/index.html")  #发出请求并且接收返回文本对象
html = response.read()   #调用read()进行读取
print(html)  #打印

打印出来的结果如下

屏幕截图.png

这就是我们获取到的文本对象,也就是我们从浏览器上看到的数据,只不过浏览器能够把他转化成我们看到的形式,我们移步到浏览器,按下F12,看到如下画面

这些便是构成网页的代码,也就是我们爬虫所需要获取到的文本
可是我们的截图似乎和他不太一样,我想你是说这样的效果,那么我们看看下面这段代码

import urllib.request #引入urllib库

response = urllib.request.urlopen("https://tieba.baidu.com/index.html")  #发出请求并且接收返回文本对象
html = response.read().decode('utf-8')   #调用read()进行读取,转换为utf-8的编码
print(html)  #打印

我们来看看效果

进行转码处理一下就可以得到我们从网页上看到的代码了,所以爬虫不难,难在对方的开发人员不想让你拿到这些代码,于是双方就进行了斗智斗勇的阶段,这些以后会提到,回到正题,那么不是每个网页都是utf-8的形式编码的,那么我们该如何获取到该编码,别急,python为什么强大,就是因为很多前辈都帮我们造好轮子,我们只需要拿过来用就行

pip install chardet

执行下面的代码

import urllib.request #引入urllib库
import chardet

response = urllib.request.urlopen("https://tieba.baidu.com/index.html")  #发出请求并且接收返回文本对象
html = response.read()   # 调用read()进行读取
chardit1 = chardet.detect(html) #获取文本编码
print(chardit1)

print(html.decode(chardit1['encoding']))

返回结果

我们下来看看ullib这个库
urllib request 模块提供了最基本的构造 HTTP 请求的方法, 利用它可以模拟浏览器的请求发起过程

urllib.request.urlopen(url, data=None, [timeout, ]***, cafile=None, capath=None, cadefault=False, context=None)

参考资料

上一篇 下一篇

猜你喜欢

热点阅读