爬取网页地址
https://steam250.com/2020
网页详情
爬取的信息
- 游戏名称
- 游戏图片地址
- 游戏发行日期
- 游戏分类
- 游戏评分
- 游戏描述
- 游戏介绍视频
这里游戏描述需要点击单个游戏介绍界面才能看到
游戏视频则需要点击游戏图片才能查看
找到爬取数据所属的html元素
爬取思路
游戏名称 游戏图片地址 游戏发行日期 游戏分类 游戏评分这些属性可以通过抓取指定html块可以拿到,游戏详情的话可以通过两个思路来实现,一个是通过爬虫爬取这些游戏详情的地址,之后访问这些地址,另一种是编写脚本点击跳转至游戏详情页面,之后再跳回主界面,这里我选用了第二种方法,同样游戏视频我也是编写脚本写的
代码
这里我只爬取了前30名游戏信息,太多了会封ip(主要是由于下载视频)
1.启动webdriver,并获取html源码
def openFireFoxDiver():
url = "https://steam250.com/2020"
driver = webdriver.Firefox()
driver.get(url)
time.sleep(5)
html_page = driver.page_source.encode('utf-8') # 取得网页的源代码
return [html_page,driver];
2.保存html源码
这里我怕突然有一天网站关闭了我先备份一波源码
# path是存放地址
def saveHtmlCode(html,path):
file = open(path, "wb")
file.write(html)
3.获取游戏详情
def getsteam150Info(path,driver):
hot_game_list = []
html = EpicGamePrice.getHtmlCode(path)
html.decode();
html_page_soup = BeautifulSoup(html, 'html.parser')
num = 1;
succ = 0;
game_nameAndMp4 = {
'name': [], 'mp4': []}
while succ<30:
# 获取每个游戏 id
gameInfo = html_page_soup.find(