日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python爬取小游戏_如何用Python爬取小游戏网站,把喜欢的游戏收藏起来(附源码)...

發(fā)布時間:2023/12/15 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬取小游戏_如何用Python爬取小游戏网站,把喜欢的游戏收藏起来(附源码)... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介:

Python 是一門簡單易學(xué)且功能強大的編程語言,無需繁瑣的配置,掌握基本語法,了解基本庫函數(shù),就可以通過調(diào)用海量的現(xiàn)有工具包編寫自己的程序,輕松實現(xiàn)批量自動化操作,可以極大提高辦公和學(xué)習(xí)效率。Python爬蟲可以批量獲取網(wǎng)頁上的數(shù)據(jù)。

Python的環(huán)境配置

1. 代碼編輯器 Pycharm community

2. 代碼解釋器 Python 3.7.6

3. 在Pycharm中創(chuàng)建項目并配置Python環(huán)境

4. 安裝工具包的兩種方式

4399小游戲爬蟲實戰(zhàn)

1、爬蟲的基本步驟

使用requests下載網(wǎng)頁

使用BeautifulSoup將requests下載的內(nèi)容解析為DOM (文檔對象模型)

通過DOM獲取所需要的數(shù)據(jù)

2、4399小游戲的本地運行

支持下載到本地的游戲 : 以 .swf 為擴展名的游戲

游戲主體頁的的src屬性可以得到絕對地址

游戲絕對地址示例: http://sxiao.4399.com/4399swf/upload_swf/ftp29/liuxinyu/20190731/7/main.swf

游戲信息頁可以獲取相對地址: 在

游戲相對地址示例: /upload_swf/ftp29/liuxinyu/20190731/7/main.swf

所需文件: 愛奇藝萬能播放器 ( 已更名為萬能聯(lián)播 ) ( GeePlayer.exe )萬能聯(lián)播PC版

3、4399小游戲爬蟲實現(xiàn)思路

爬取4399好玩的小游戲頁面(http://www.4399.com/flash/gamehw.htm), 通過解析得到DOM來獲取所有的游戲鏈接

遍歷所有的游戲鏈接, 開啟線程下載該鏈接的網(wǎng)頁并判斷該游戲是否支持下載到本地, 如果支持則拼接下載地址, 并開啟游戲下載線程

游戲下載線程: 根據(jù)下載地址來下載 .swf 文件并保存到本地

完整代碼

1import os

2import re

3import threading

4

5from bs4 import BeautifulSoup as bs

6import requests

7

8

9def getAllGameUrl():

10 """

11 獲取所有游戲的名稱和游戲信息頁的鏈接

12 :return:

13 """

14 gameUrlList = []

15 response = requests.get(‘http://www.4399.com/flash/gamehw.htm‘)

16 dom = bs(response.content, ‘html.parser‘)

17 gameLiList = dom.select(‘#skinbody > div:nth-child(6) > ul > li‘)

18 for i in gameLiList:

19 # 獲取游戲的名稱

20 gameName = i.select_one(‘a(chǎn) > b‘).get_text()

21 # 獲取游戲信息頁的鏈接

22 # ‘http://www.4399.com/flash/212103.htm‘

23 gameInfoUrl = indexUrl + i.select_one(‘a(chǎn)‘)[‘href‘]

24 gameUrlList.append({‘gameName‘: gameName, ‘gameInfoUrl‘: gameInfoUrl})

25 return gameUrlList

26

27

28def downloadIfAvailable(game):

29 """

30 判斷一個游戲是否支持本地下載

31 :return:

32 """

33 response = requests.get(game[‘gameInfoUrl‘])

34 plainText = response.text

35 relativeUrlList = re.findall(r‘(?<=_strGamePath=").+?\.swf‘, plainText)

36 if len(relativeUrlList) != 0:

37 gameUrl = gameBaseUrl + relativeUrlList[0]

38 game[‘gameUrl‘] = gameUrl

39 threading.Thread(target=downloadAGame, args=(game,)).start()

40

41

42def downloadAGame(game):

43 """

44 根據(jù)下載鏈接下載游戲,并保存到.swf文件

45 :param game:

46 :return:

47 """

48 downloadPath = ‘games/‘

49 if not os.path.exists(downloadPath):

50 try:

51 os.mkdir(downloadPath)

52 except FileExistsError as e:

53 print(e)

54 with open(downloadPath + game[‘gameName‘] + ‘.swf‘, ‘wb‘) as file:

55 file.write(requests.get(game[‘gameUrl‘]).content)

56 print(game[‘gameName‘] + ‘下載完成‘)

57

58

59if __name__ == ‘__main__‘:

60 indexUrl = ‘http://www.4399.com‘

61 gameBaseUrl = ‘http://sxiao.4399.com/4399swf‘

62 gameUrlList = getAllGameUrl()

63 for i in gameUrlList:

64 threading.Thread(target=downloadIfAvailable, args=(i,)).start()

原文:https://www.cnblogs.com/python0921/p/12869725.html

總結(jié)

以上是生活随笔為你收集整理的python爬取小游戏_如何用Python爬取小游戏网站,把喜欢的游戏收藏起来(附源码)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。