【手摸手学ModelArts】AI小白的第一行爬虫代码献给华为云博客
【摘要】 快来瞧瞧,Copy攻城狮分享了一个快速获取华为云博客文章及链接的祖传秘方!
本文是纯代码篇,不会涉及任何理论,翔一样的代码,求大佬指导鞭策!
首先一个需求来了,【2020华为AI训练营】要我们提交个人的博客标题和链接,作为懒人的我,不想一个一个去copy,于是想到了爬虫。首先声明一下,我没有Python基础,从代码中就能看出来,不过干了4年前端,对页面的结构还算了解,通过查找一些代码,终于花了3个小时,完成了这个残次品。代码仅供学习用,请勿触碰红线。也请各位大佬多多指教!
# 引入网络请求库 from urllib import request # 引入base4库 import base64 # 导入html解析库并取别名为bs from bs4 import BeautifulSoup as bs class HuaweiCloud: '获取某个人的华为云博客文章' # 用户搜索入口 baseUrl = 'https://huaweicloud.com' # 博客列表入口 url = '' # 文章列表 allArticle = '' # 标志位,0-搜索用户,1-搜索文章 flag = 0 def __init__(self, name): self.name = name print(name) # 转码 def encode(self): encoded = base64.b64encode(('%'+self.name+'%').encode()) encoded = str(encoded,encoding = "utf-8") print(encoded) return encoded # 搜索 def doSearch(self): # 首先执行用户搜索,获取用户ID(博客用户) if self.flag == 0: self.url = self.baseUrl + '/s/' + self.encode() # 添加UA标识讲这个爬虫程序伪装成浏览器访问 user_agent = "User-Agent" user_agent_value = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36" print(self.url) # 发起网络请求,获取到返回的html resp = request.Request(self.url) # 模拟浏览器 resp.add_header(user_agent, user_agent_value) resp = request.urlopen(resp) # 网页返回的数据 htmlCode = resp.read().decode("utf-8") # print(htmlCode) # 格式化html(htmlCode就是上面我们请求到的数据) soup = bs(htmlCode, "html.parser") # 输出格式化好的html内容 # print(soup.prettify()) # 这是第一步,在主站搜索用户,默认取的第一个 if self.flag == 0: userList = soup.find_all("li", {"class", "user-classify"}) user= userList[0].find_all("a") # 取第一个用户的博客地址 self.url = user[0].get("href") print(user[0].get("href")) # 执行第二步 self.flag = 1 self.doSearch() # 第二步获取文章 if self.flag == 1: blogList = soup.find_all("a", {"class", "common-blog-title"}) print(blogList) for article in blogList: url = article.get("href") title= article.get("title") if url and title: testUrl = 'https://bbs.huaweicloud.cn'+url article = title + testUrl self.allArticle += article +'\n' print(self.allArticle) return(self.allArticle) t = HuaweiCloud('胡琦') t.doSearch()
如果ModelArts的notebook中没有beautifulsoup4这个依赖,可手动安装:
!pip install beautifulsoup4
结果预览
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)