【手摸手学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.com'+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
- 点赞
- 收藏
- 关注作者
作者其他文章
AI之旅2020/06/11 08:56:221楼编辑删除举报
如果有分页怎么取出所有的博文。
胡琦2020/06/11 11:07:05编辑删除举报