爬取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文本可以使用多种方法,具体取决于你想要爬取的内容和目的。以下是一个基本的步骤指南,帮助你开始爬取GitHub上的文本数据: ### 1. 准备工作 - **安装必要的库**:你需要安装一些Python库,如`requests`、`BeautifulSoup`和`GitHub API`。 ```bash pip install requests beautifulsoup4 PyGithub ``` ### 2. 使用GitHub API GitHub提供了丰富的API,可以方便地获取各种数据。以下是一个使用`PyGithub`库的示例: ```python from github import Github # 使用你的GitHub Token g = Github("your_github_token") # 替换为目标仓库 repo = g.get_repo("owner/repo") # 获取所有提交 commits = repo.get_commits() for commit in commits: print(f"Commit: {commit.sha}") print(f"Author: {commit.author}") print(f"Message: {commit.commit.message}") print("-----") ``` ### 3. 使用`requests`和`BeautifulSoup` 如果API无法满足你的需求,可以使用`requests`库发送HTTP请求,并使用`BeautifulSoup`解析HTML内容。 ```python import requests from bs4 import BeautifulSoup # 替换为目标URL url = "https://github.com/owner/repo" # 发送HTTP请求 response = requests.get(url) # 解析HTML内容 soup = BeautifulSoup(response.text, 'html.parser') # 查找特定的标签或内容 # 例如,查找所有的提交信息 commits = soup.find_all('div', class_='commit') for commit in commits: message = commit.find('p', class_='commit-title').text.strip() author = commit.find('a', class_='commit-author').text.strip() print(f"Author: {author}") print(f"Message: {message}") print("-----") ``` ### 4. 注意事项 - **遵守GitHub的使用政策**:确保你遵守GitHub的使用条款,不要进行过于频繁的请求,以免被封禁。 - **处理反爬机制**:有些网站可能会有反爬机制,使用`headers`来模拟浏览器请求。 ### 5. 进一步优化 - **使用代理**:为了避免IP被封,可以使用代理服务器。 - **多线程或异步请求**:提高爬取效率。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值