爬取GitHub上的commit信息

经历了Googleplay之后 GitHub就会感觉简单很多

由于github每一个commit信息都会跳转页面 ,为了获取commit的具体信息

我的思路是首先翻页获取所有的commit信息的url 将其保存到本地

在根据这些commit信息获取所有需要的具体信息

 

过程:从某应用commit界面出发,eg 

https://github.com/AChep/AcDisplay/commits

然后翻几页就可以发现规律: 每页有35个commit  从第二页开始

页面url就是xxxxxxxx+xx

前面一长串字符串是第一页第一个commit的url +号后面的数字可以看作是35*i-1  i为页数

意思就是每页第一个commit是排在第一页第一个commit后面第几个

很好理解 反而被我说复杂了

其实我采取的是selenium模拟浏览器翻页  所有以上分析我也用不上

但是要是采取用url链接来直接进行翻页的话 以上分析是必须的

 

我遇到的第一个重大困难是  跳转页面后获取不到当前页面的元素,得到的仍是第一页的数据

上网查各种资料  很多人都说用一个driver.get(driver.current_ul)就可以定位到当前页面了

但是我只要一使用这个方法就会出错  原因可能是 我用的是selenium2.48版本和PhantomJS版本太低?

总之到最后我也没有完全弄懂

于是我换了一个方法

因为我发现翻页后的url是获取到了的  只是单纯无法定位到这个页面

所以我首先把这个页面的url赋值给一个变量 然后在用driver.get获取这个页面

成功

 

然后遇到的都是一些小问题  也没啥好说的了

总之这次爬虫还是挺顺利的

 

爬取GitHub上的所有项目,可以按照以下步骤进行操作: 1. 首先,你需要使用GitHub提供的API来获取项目的信息GitHubAPI文档提供了详细的说明和示例,你可以根据自己的需求选择合适的API端点和参数来获取项目数据。\[1\] 2. 在使用API之前,你需要注册一个GitHub账号并生成一个访问令牌(access token)。访问令牌可以用于身份验证和限制访问频率。你可以在GitHub的设置页面中生成访问令牌,并在API请求中使用该令牌进行身份验证。\[1\] 3. 一旦你获得了访问令牌,你可以使用Python的requests库或其他HTTP请求库来发送API请求,并解析返回的JSON数据。你可以使用循环和分页查询来遍历所有的项目数据。\[2\] 4. 在遍历项目数据时,你可以获取每个项目的名称、描述、语言、星标数等信息。你还可以根据需要获取项目的代码仓库地址、贡献者列表等更详细的信息。\[2\] 5. 为了避免对GitHub服务器造成过大的负载,你可以设置适当的请求间隔和错误处理机制。可以使用try-except语句来捕获请求错误,并在错误发生时进行适当的处理,例如等待一段时间后重新发送请求。\[2\] 总结起来,要爬取GitHub上的所有项目,你需要使用GitHubAPI来获取项目数据,并使用Python编写爬虫程序来发送API请求和解析返回的数据。你可以根据自己的需求选择合适的API端点和参数,并设置适当的请求间隔和错误处理机制。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* [Python爬取github数据](https://blog.csdn.net/m0_59485658/article/details/128056622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [爬取GitHub开源项目](https://blog.csdn.net/qq_43250401/article/details/103208629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值