js 抓取网页内容(不能登入后关注人数和粉丝人数直接查看源码的话)
优采云 发布时间: 2021-11-16 11:00js 抓取网页内容(不能登入后关注人数和粉丝人数直接查看源码的话)
内容
1 总结
使用cookies无密码登录,然后使用requests获取页面信息,然后在js中使用re提取信息
项目地址:
2 内容
登录后想爬,但是研究了很久,还是没找到怎么登录。。. 好好学习,早日成为大牛
废话不多说。既然不能登录就抢了,也可以用其他的方法,比如selenium或者cookies。去罗马的方式不止一种。为什么挂在一个登录
这里选择cookies登录,毕竟使用selenium的效率太低了。. . .
好了,打开新浪微博,愉快的输入账号和密码,点击登录,等待重定向。跳转速度真的很慢,然后我再次点击登录,然后弹出一个验证码。. . . 所以只要等待跳跃,不要太着急。
然后我进入我的主页,并在搜索框中输入您要搜索的内容。原来发帖人想抢大家的关注列表,后来实在想不起来谁了,就拿我自己来举例(其实我是搜星的,手动哈哈),点开个人主页,然后右——点击查看源代码。我想要什么信息?他们都在哪里?原来微博是用javascript来处理的,所以没有办法直接看到需要的信息。那我们该怎么办呢?
不用担心,虽然源码是在javascript处理后加载的(javascript教程,可以点这里),但是处理也需要一些天赋,需要的不是我们想要的吗?
那么,我们直接分析源码
例如,我们要捕获个人主页的关注者和粉丝数
如果直接看源码,是找不到相关标签的。那就直接搜索关键词“关注”看看能不能找到,嘻嘻
可以看到,我们已经找到了我们需要的数据(好像已经掉粉了……)。这种格式的数据一定不能被依赖于 bs4 或 pyquery 等标签的工具解析。是时候牺牲规律了。表情是一面大横幅。直接写出提取的表达式即可。什么?不知道正则表达式怎么写,点这里
废话不多说,匹配模式如下:
由于粉丝太多,就不提取了。这里提取的是关注者列表(名人粉丝那么多(*——*))。
接下来是关注者列表的提取,提取的偶像名称和主页链接,和上面一样的操作,直接上图:
在源码页面搜索这个“电竞*敏*感*词*”
搜索结果如下:可以看到我们找到的链接(href)是个人主页链接
然后这里是正则表达式:
p2 = r''
通过这种方式,可以提取所需的信息。
我把其他部分放在我的 GitHub 上。最后贴一张我自己操作的图片
哦对了,只能使用电脑上多个账户生成的最后一个cookie!