python爬虫(三)爬取js动态页面之b站粉丝数观看数点赞数爬取
前言
自己学习python的初衷就是为了能在支持micropython的芯片上编程,比如早期接触到的openmv,以及拥有arm linux环境的树莓派上(树莓派的python不是micropython)还有后面接触到的esp32和esp8266上编写程序。于是乎进入了python编程的自学行列,经过一段时间在b站看小甲鱼视频后自己的基础知识方面知道的差不多了,后面就想着运用到实际上。于是就接触python最经典的东西“爬虫”,一开始学习爬虫的时候是在mooc跟着嵩天老师学习的,讲到关于requests和bs4在内的很多爬虫。自己也慢慢的有了进步,但是在自己想依靠爬虫去白嫖“百度文库”的时候第一次碰壁,自己爬取的内容是空的。很奇怪,明明自己按了F12后能看到文字在html后面怎么爬虫就爬取的是空呢?后来几经百度发现它的页面是通过js渲染的,而requests库能得到的就是原始的html页面,于是也就只能不了了之。时过境迁,后来我准备利用esp32里的micropython制作一个up主点赞关注的显示机的时候,又碰到了这个问题,我也百度过也知道它百度后能查到它的api,但是这次我想亲自分析出这个api,也为我爬虫学习画上一个小句号
方法一:selenium库
关于这个selenium库,是一个网页自动化的库,个人理解就是做网页脚本的一个好用的库,这里如果用它做爬虫的话能够获取渲染过后的结果,它pip下载之后还要去安装对应的网页驱动比如我就是用的是谷歌浏览器的驱动,这里推荐一篇博文windows环境下安装selenium这里要说的是要会看自己浏览器的版本去下对应的驱动,chrome是在【帮助】->【关于Google chrome】里面
这是我的版本。
在你要爬取的地方右击然后copy Xpath就行了
后面的我就贴出代码来了
from selenium import webdriverBrowser = webdriver.Chrome()
Browser.get("https://space.bilibili.com/442752399?from=search&seid=17757741653586589473")
content = Browser.find_element_by_xpath('//*[@id="navigator"]/div/div[1]/div[3]/a[2]')
print("粉丝数:",content.get_attribute("title"),content.text)
Browser.close()
方法二:分析出api
实际上对于micropython来说并不是python它没有那么丰富的库,不过最基础的requests库还是有的(micropython里叫urequests库)那么这么基础的库我们就只能抓它的api了,于是就要对网页数据包进行分析。
按下F12后首先我对一个数字产生了兴趣那就是粉丝数12243这个数字那么如果有数据包,数据包就必然有这个数字(前提是没做加密处理的情况),然后我就习惯性的去network里面的XHR找,
结果找了一圈没找到,后来进入了,Sources里搜索这个数字
终于在这里找到了,但是当我右键open in new tab的时候
结果就是无法访问,最后分析url后我i选择删除&callback=__jp4后发现成功返回json
至此它的api就分析出来啦,下面贴出源码
import requestsuid = input('please input your uid:')
url = 'https://api.bilibili.com/x/relation/stat?vmid=%s&jsonp=jsonp'%(uid)
r = requests.get(url)
print(r.json()["data"]["follower"])
总结
以上就是自己的两种方法,第一种适合pc,但是相对看、来说可能局限性很大。第二种很明显就是要抓取源数据的url,这里通过一些手段获得相应的url后对url分析后获取真正的url,虽然很简单但是写出了自己的心路历程,算是给后来的人少走弯路吧。
python爬虫(三)爬取js动态页面之b站粉丝数观看数点赞数爬取相关推荐
- python爬虫——三步爬得电影天堂电影下载链接,30多行代码即可搞定:
python爬虫--三步爬得电影天堂电影下载链接,30多行代码即可搞定: 本次我们选择的爬虫对象是:https://www.dy2018.com/index.html 具体的三个步骤:1.定位到202 ...
- Python爬虫教程-16-破解js加密实例(有道在线翻译)
python爬虫教程-16-破解js加密实例(有道在线翻译) 在爬虫爬取网站的时候,经常遇到一些反爬虫技术,比如: 加cookie,身份验证UserAgent 图形验证,还有很难破解的滑动验证 js签 ...
- Python爬虫三:抓取链家已成交二手房信息(58W数据)
环境:Windows7+python3.6+Pycharm2017 目标:抓取链家北京地区已成交二手房信息(无需登录),如下图,户型.朝向.成交时间价格等,保存到csv.最后一共抓取约58W数据,程序 ...
- [Python爬虫] 三、数据抓取之Requests HTTP 库
往期内容提要: [Python爬虫] 一.爬虫原理之HTTP和HTTPS的请求与响应 [Python爬虫] 二.爬虫原理之定义.分类.流程与编码格式 一.urllib 模块 所谓网页抓取,就是把URL ...
- nodejs爬虫与python爬虫_Python,Node.js 哪个比较适合写爬虫?
主要看你定义的"爬虫"干什么用. 1.如果是定向爬取几个页面,做一些简单的页面解析,爬取效率不是核心要求,那么用什么语言差异不大. 当然要是页面结构复杂,正则表达式写得巨复杂,尤其 ...
- Python爬虫(三)_urllib2:get和post请求
urllib.urlencode() urllib和urllib2都是接受URL请求的相关参数,但是提供了不同的功能.两个最显著的不同如下: urllib仅可以接受URL,不能创建设置了headers ...
- js动态渲染html页面,利用Scrapy-Splash抓取JS动态渲染的网页数据
随着越来越多的网站开始用JS在客户端浏览器动态渲染网站,导致很多我们需要的数据并不能由原始的html中获取,再加上Scrapy本身并不提供JS渲染解析的功能,通常对这类网站数据的爬取我们一般采用两种方 ...
- 抓取js动态生成的数据分析案例
需求: 爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/data018d244441062d8916dd472a4c6a0a0b.htm ...
- python爬虫高级教程,JS逆向之百度翻译
环境 python版本号 系统 游览器 python 3.7.2 win7 google chrome 关于本文 本文将会通过爬虫的方式实现简单的百度翻译.本文中的代码只供学习,不允许作为于商务作用. ...
- Python 爬虫进阶必备 | 某音乐网站查询参数加密逻辑分析(分离式 webpack 的加密代码扣取详解)...
点击上方"咸鱼学Python",选择"加为星标" 第一时间关注Python技术干货! 今日网站 aHR0cDovL3d3dy5rdXdvLmNuL3NlYXJj ...
最新文章
- 使用pip安装特定的软件包版本
- 区块链BaaS云服务(35)亦笔科技ODRChain
- boost::graph模块实现DFS parenthesis的测试程序
- 程序员每天到底可以写几行代码?
- [转]用g++编译动态链接库
- 杜教筛--51nod1239 欧拉函数之和
- 为什么你需要设计和维护一套自我移动标准?
- 微信企业号三个连接模式
- 推荐我们在B站免费的转录组课程
- 银行工作的你压力大吗?待遇还好吗?
- 第四篇、Python文件处理
- lvm快照备份mysql
- zw版【转发·台湾nvp系列Delphi例程】HALCON DivImage2
- 完美者常用软件光盘2008
- 颜色的16进制表达方式
- 将linux系统移动硬盘,着手打造你的随身系统---将linux装进移动硬盘
- android 自定义通知铃声设置在哪,安卓手机铃声自定义:短信通知、来电铃声怎么设置?...
- 诺基亚n1 android 64位,诺基亚N1开始推送安卓5.0.2系统更新
- STM:一种新的肺癌标志物
- OSChina 周三乱弹 —— 多情自古空余恨,此恨绵绵无绝期