大家好,我是辣條,
前言
2021年已到尾巴尖尖了,
今天照鏡子,看著鏡子中的自己,發現還是跟年輕時一樣的“帥”,看到頭部的時候又發現相比半個月之前的發際線,它好像又往上移了一點點,看著這上移的發際線我決定找回童年,把4399上玩過的小游戲再玩一遍,不過在玩游戲的時候呢!我又順便把4399全站小游戲全抓下來了,順便給大家分享點知識!

領取福利
300+Python經典編程案例
50G+學習視頻教程
100+Python初階、中階、高階電子書籍
1000+簡歷模板和匯報PPT模板(轉正、年終等)
采集目標
網址:4399小游戲
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Zo8j9Qpv-1640778179102)(./imgs/1.jpg)]](https://img.uj5u.com/2021/12/30/293146300959453.png)
工具準備
開發工具:pycharm
開發環境:python3.7, Windows10
使用工具包:requests、csv
效果展示
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Fid36rQ5-1640778179104)(./imgs/5.jpg)]](https://img.uj5u.com/2021/12/30/293146300959454.png)
專案思路決議
第一步獲取到目標資料的地址,分析頁面的資料加載規則,資料分為兩種,一種是靜態資料,另外一種是動態資料,判斷資料加載可以通過原始碼分析,查看當前源代碼,要是源代碼是能搜索出你想要的資料就是靜態的,反之就是動態資料,當前網頁資料是靜態資料
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-J1yLyAjh-1640778179105)(./imgs/2.jpg)]](https://img.uj5u.com/2021/12/30/293146300959455.png)
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-bB60HEdo-1640778179108)(./imgs/3.jpg)]](https://img.uj5u.com/2021/12/30/293146300959451.png)
明確資料后對網址發送請求,獲取網頁資料,獲取到資料后,通過特定的方法提取資料資訊,(提取資料的方法有正則、xpath、bs4、選擇器),根據自己掌握的技術選取相對應的資料規則,需要獲取到網頁的游戲標題以及游戲詳細地址
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-QXiD4LnT-1640778179109)(./imgs/4.jpg)]](https://img.uj5u.com/2021/12/30/293146300959456.png)
獲取到資料后進行資料的儲存,大部分情況資料是保存在資料庫的,今天的資料儲存在csv的表格檔案
簡易原始碼分享
import requests
# import parsel
import csv
from lxml import etree
f = open('4399游戲.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['游戲地址', '游戲名字'])
csv_writer.writeheader()
for page in range(1, 106):
url = 'http://www.4399.com/flash_fl/5_{}.htm'.format(page)
headers = {
'User-Agent': ''
}
response = requests.get(url=url, headers=headers).content.decode('gb2312')
# print(response)
html_data = etree.HTML(response)
lis = html_data.xpath('//div[@class="bre m15"]//ul/li')
# lis = selector.css('#classic li')
for li in lis:
data_url = 'http://www.4399.com' + li.xpath('./a/@href')[0]
print(data_url)
title = li.xpath('./a/text()')[0]
csv_writer.writerow({'游戲地址': data_url, '游戲名字': title})
f.close()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/397363.html
標籤:python
