Urllib库
什么是Urllib?
它是python自带的标准库,主要用它来获取网页信息。
怎么获取网页信息??
(简单小例子)
# 导入库
from urllib import request
# 定义要获取信息的网址
url = "http://www.bilibili.com"
# 进行神秘操作(解析网址)
req = request.Request(url)
# 在解析好的信息中添加头部浏览器标识信息
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36")
# 打开网址链接通道
res = request.urlopen(req)
# 将获取到的信息转码后打印出来
print(res.read().decode("utf-8"))
这样就能获取到数据了,一般情况下取到的只是网页的html代码。
每次都只能固定网址展现出的那一点数据,这爬一次都不够成本的,我们可是大盗,要展现出达到的”大“
如何能够一次获取更多的数据呢?_?
能够一次获取更多数据,就要求我们的地址不能是固定的,应该是变了,再网址中引入变量就不错!
引入变量后地址就变了,还能获取到数据吗??
我们来观察几个网址:
http://www.aihuhua.com/hua/page-2.html
http://www.aihuhua.com/hua/page-3.html
这是一个网页点击不同分页页码之后的效果,我们可以看出,两个网址几乎一模一样,唯一不同的就是一个是page-2,一个是page-3。英语已经过四级的你一定能够看出来(没过四级相信你也是可以的)。
没错! 这两个对应的就是页码。将它变成变量我们是不是就可以获取到多页的数据啦!
我们来试一试吧:
from urllib import request
上面这种情况多次爬取数据时,可能会被网页判定为非正常操作而被屏蔽,这时后我们就要对自己进行“伪装“
首先时浏览器伪装
起始我们刚才再为网址解析添加”User-Agent“,就已经进行初步的伪装,将自己从一爬虫伪装成了浏览器请求。
接下来我们要做的是不仅将自己伪装成浏览器,还要变成不同的浏览器。
秘籍:浏览器伪装组件!!!
# 导入随机函数,它能使我们的伪装变得不经意-_^
import random
# 这是常见的浏览器头部,是我们用来伪装的道具库
ua_list = [
"Mozilla/5.0 (Windows NT 6.1; ) Apple.... ",
"Mozilla/5.0 (X11; CrOS i686 2268.111.0)... ",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X.... ",
"Mozilla/5.0 (Macintosh; Intel Mac OS... "
]
# 不经意的挑选道具
user_agent = random.choice(ua_list)
# 伪装*_*
ua_header = {"User-Agent":user_agent}
# 大成功!!!
这样我们就能改变容貌取爬取数据了,但是人家的网站也不是吃素的,虽然我们易了容,但是身份证(每台电脑的IP是固定的,虽然我们改变了浏览器的头部,但是每次请求的IP是不变的)还是同一张啊!!!
怎么办要被识破了!
网友评论