python爬取B关于爬虫的学习资料
很多在学习python的小伙伴选择学习软件的时候大多都会有哔哩哔哩,哔哩哔哩大概是当下年轻人手机里面的必备软件之一。B站之所以火,是因为趣味与知识并存。它是一个重度宅腐二次元集结地。B站包含动漫、漫画、游戏,也有很多由繁到简、五花八门的视频,很多冷门的软件和绘画技巧在B站都可以找到完整的教学视频。正如一句“你在B站看番,我在B站学习”,B站还是有一些质量比较好的学习视频,那我们今天就利用python去分析下B上那些比较火的爬虫学习视频。
在获取数据之前先对目标网站进行分析,https://search.bilibili.com/all?keyword=python&from,这里我们主要是获取关于python学习的视频,所以通过爬虫关键字找到到相关视频,并且网站有反爬机制,反爬虫是网站为了维护自己的核心安全而采取的抑制爬虫的手段,反爬虫的手段有很多种。比如爬虫程序可能会在短时间内对指定的服务器发起高频的请求。后台服务器对访问进行统计,单位时间内同一IP访问的次数超过一个特定的值,就会不同程度的禁封IP,导致无法进行爬虫操作。这时我们就需要用到代理池,并设定延迟访问。如何选择代理IP,之前的文章有详细的分享过,这里我们为了节省时间就直接使用了由亿牛云提供的隧道IP,代理在爬虫程序里面的实现代码示例如下:
#! -*- 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
python爬取B关于爬虫的学习资料
xiaotaomi
会员积分:6520
很多在学习python的小伙伴选择学习软件的时候大多都会有哔哩哔哩,哔哩哔哩大概是当下年轻人手机里面的必备软件之一。B站之所以火,是因为趣味与知识并存。它是一个重度宅腐二次元集结地。B站包含动漫、漫画、游戏,也有很多由繁到简、五花八门的视频,很多冷门的软件和绘画技巧在B站都可以找到完整的教学视频。正如一句“你在B站看番,我在B站学习”,B站还是有一些质量比较好的学习视频,那我们今天就利用python去分析下B上那些比较火的爬虫学习视频。
在获取数据之前先对目标网站进行分析,https://search.bilibili.com/all?keyword=python&from,这里我们主要是获取关于python学习的视频,所以通过爬虫关键字找到到相关视频,并且网站有反爬机制,反爬虫是网站为了维护自己的核心安全而采取的抑制爬虫的手段,反爬虫的手段有很多种。比如爬虫程序可能会在短时间内对指定的服务器发起高频的请求。后台服务器对访问进行统计,单位时间内同一IP访问的次数超过一个特定的值,就会不同程度的禁封IP,导致无法进行爬虫操作。这时我们就需要用到代理池,并设定延迟访问。如何选择代理IP,之前的文章有详细的分享过,这里我们为了节省时间就直接使用了由亿牛云提供的隧道IP,代理在爬虫程序里面的实现代码示例如下:
#! -*- 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
22-08-16 16:44
1061
0
回复
暂无评论