资讯专栏INFORMATION COLUMN

python爬虫爬取github所有follwers初级版

stormgens / 2263人阅读

摘要:按照同样的方式扒取所有的自己的用户。但是为了尊重人家隐私权,好吧,就这样吧,我也不能做啥。

这几天我很焦虑,受不了那些先follow我,等我follow回去后又unfollow的人,因为是他们先follow我的,我出于人道主义想着互粉一下的,结果这么对我,太不厚道了。github又不像微博那样有互粉标志,这真的整得我很心烦,于是想着写一个爬虫,把这些“坏人”揪出来~
第一步,当然是放出代码啦,代码放在我的github上,欢迎给star:

https://github.com/laurel-he/...

我是一个python初学者,完全小白,所以只能用比较蠢的方法来扒,以下是我的步骤:
1 扒取整个页面

# -*- coding:UTF-8 -*-
import requests
if __name__ == "__main__":
target = "https://github.com/laurel-he?tab=followers"
req = requests.get(url=target)
fo = open("1.txt", "ab+")        
fo.write((req.text).encode("UTF-8"))  
fo.close()    

以上代码可以将整个文件的html扒取下来,接下来找到用户,在follower里面随便找到一个用户,在刚才生成的txt文件中搜索,然后就可以得到如下匹配:

data-octo-dimensions="link_type:self".href="/(.?)"

可以直接匹配出用户名。
2 根据正则获取匹配的用户
刚才已经把整个页面扒取下来了,代码放在spider/follwers/url.py,txt文件效果如下:

但是我想要获取的是所有follwer,之前已经得到了对应的正则表达式,那么得到所有的follwer很容易,最终代码如下:

# -*- coding:UTF-8 -*-
import requests
import re
if __name__ == "__main__":
target = "https://github.com/laurel-he?tab=followers"
req = requests.get(url=target)
context = req.text
patt = re.compile(r"data-octo-dimensions="link_type:self".*href="/(.*?)"")
ch = patt.findall(req.text)
fo = open("flower.txt","ab+")
for i in ch:
    line = str(i) + "
"
    fo.write((line).encode("UTF-8")+b"
")
fo.close

以上代码可以直接扒取所有follwers,但是出现了两遍,因为我这个表达式每个名字会匹配到两次,下一版本会更换正则表达式,先将就用吧,然后如法炮制扒取第二页第三页,只需要更改链接地址,加上page就可以,同时也可以把文件写入方式变成追加方式,或者干脆每次都新建一个文件,无所谓,总之最终将所有用户扒取下来。按照同样的方式扒取所有的自己follwing的用户。
这里注意的是,代码里一定要加上换行!换行符不加就是一团乱麻,啥也看不清。
换行符添加后不成功的话试试加上"r",也许就能成功了;
还是不成功的话看看报错是不是这个样子滴:

是的话加上b方法,转化成byte~
3 接下来是最傻最骚的操作-对比
想要找出来那个没有follow自己的人,只能进行对比,我目前用了一个很傻的办法就是新建一个excel文件,按照列粘贴所有数据,然后按照升序或降序排行(两列排列方式要一样),然后肉眼来对比!!!

其实我还是觉得我要瞎了,但是真的比起一个个看好多了,以后继续想更好的办法,总之我是揪出来那个坏人了。。。但是为了尊重人家隐私权,好吧,就这样吧,我也不能做啥。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41911.html

相关文章

  • 爬虫初级操作(二)

    摘要:本篇内容为网络爬虫初级操作的简单介绍,内容主要有以下部分解析网页数据库解析网页一般来说,解析网页有三种方式正则表达式。关于,我们最后再来看一个实战项目爬取北京二手房价格。代码如下第页这样就成功爬取了安居客上前页的北京二手房价格。 本篇内容为 python 网络爬虫初级操作的简单介绍,内容主要有以下 2 部分: 解析网页 数据库 解析网页 一般来说,解析网页有三种方式:正则表达式、...

    崔晓明 评论0 收藏0
  • 爬虫初级操作(二)

    摘要:本篇内容为网络爬虫初级操作的简单介绍,内容主要有以下部分解析网页数据库解析网页一般来说,解析网页有三种方式正则表达式。关于,我们最后再来看一个实战项目爬取北京二手房价格。代码如下第页这样就成功爬取了安居客上前页的北京二手房价格。 本篇内容为 python 网络爬虫初级操作的简单介绍,内容主要有以下 2 部分: 解析网页 数据库 解析网页 一般来说,解析网页有三种方式:正则表达式、...

    callmewhy 评论0 收藏0
  • python

    Python装饰器为什么难理解? 无论项目中还是面试都离不开装饰器话题,装饰器的强大在于它能够在不修改原有业务逻辑的情况下对代码进行扩展,权限校验、用户认证、日志记录、性能测试、事务处理、缓存等都是装饰器的绝佳应用场景,它能够最大程度地对代码进行复用。 但为什么初学者对装饰器的理解如此困难,我认为本质上是对Py… Python 实现车牌定位及分割 作者用 Python 实现车牌定位及分割的实践。 ...

    chenatu 评论0 收藏0
  • 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<