- 积分
- 274
- 鸿鹄币
- 个
- 好评度
- 点
- 精华
- 注册时间
- 2020-3-9
- 最后登录
- 1970-1-1
- 阅读权限
- 30
- 听众
- 收听
初级工程师
|
很多在学习python的小伙伴选择学习软件的时候大多都会有哔哩哔哩,哔哩哔哩大概是当下年轻人手机里面的必备软件之一。B站之所以火,是因为趣味与知识并存。它是一个重度宅腐二次元集结地。B站包含动漫、漫画、游戏,也有很多由繁到简、五花八门的视频,很多冷门的软件和绘画技巧在B站都可以找到完整的教学视频。正如一句“你在B站看番,我在B站学习”,B站还是有一些质量比较好的学习视频,那我们今天就利用python去分析下B上那些比较火的爬虫学习视频。
在获取数据之前先对目标网站进行分析,https://search.bilibili.com/all?keyword=python&from,这里我们主要是获取关于python学习的视频,所以通过爬虫关键字找到到相关视频,并且网站有反爬机制,反爬虫是网站为了维护自己的核心安全而采取的抑制爬虫的手段,反爬虫的手段有很多种。比如爬虫程序可能会在短时间内对指定的服务器发起高频的请求。后台服务器对访问进行统计,单位时间内同一IP访问的次数超过一个特定的值,就会不同程度的禁封IP,导致无法进行爬虫操作。这时我们就需要用到代理池,并设定延迟访问。如何选择代理IP,之前的文章有详细的分享过,这里我们为了节省时间就直接使用了由亿牛云提供的隧道IP,代理在爬虫程序里面的实现代码示例如下:
Plain Text
#! -*- encoding:utf-8 -*-
import requests
import random
# 要访问的目标页面
targetUrl = "http://httpbin.org/ip"
# 要访问的目标HTTPS页面
# targetUrl = "https://httpbin.org/ip"
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "username"
proxyPass = "password"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}
# 设置 http和https访问都是用HTTP代理
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}
# 设置IP切换头
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}
resp = requests.get(targetUrl, proxies=proxies, headers=headers)
print resp.status_code
print resp.text
目标网站的反爬机制比较多,而且会经常进行更新,所以我们在使用爬虫获取数据的过程中要随时都关注到网站的反爬机制问题,并做出相应的调整和措施。
|
|