4399小游戏童年的乐趣,python爬取4399全站小游戏

大家好,我是辣条。

前言

2021年已到尾巴尖尖了。
今天照镜子,看着镜子中的自己,发现还是跟年轻时一样的“帅”,看到头部的时候又发现相比半个月之前的发际线,它好像又往上移了一点点。看着这上移的发际线我决定找回童年,把4399上玩过的小游戏再玩一遍。不过在玩游戏的时候呢!我又顺便把4399全站小游戏全抓下来了。顺便给大家分享点知识!
在这里插入图片描述
领取福利

300+Python经典编程案例
50G+学习视频教程
100+Python初阶、中阶、高阶电子书籍
1000+简历模板和汇报PPT模板(转正、年终等)

采集目标

网址:4399小游戏
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zo8j9Qpv-1640778179102)(./imgs/1.jpg)]

工具准备

开发工具:pycharm
开发环境:python3.7, Windows10
使用工具包:requests、csv

效果展示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fid36rQ5-1640778179104)(./imgs/5.jpg)]

项目思路解析

第一步获取到目标数据的地址,分析页面的数据加载规则,数据分为两种,一种是静态数据,另外一种是动态数据,判断数据加载可以通过源码分析,查看当前源代码,要是源代码是能搜索出你想要的数据就是静态的,反之就是动态数据,当前网页数据是静态数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J1yLyAjh-1640778179105)(./imgs/2.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bB60HEdo-1640778179108)(./imgs/3.jpg)]

明确数据后对网址发送请求,获取网页数据,获取到数据后,通过特定的方法提取数据信息,(提取数据的方法有正则、xpath、bs4、选择器),根据自己掌握的技术选取相对应的数据规则,需要获取到网页的游戏标题以及游戏详细地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QXiD4LnT-1640778179109)(./imgs/4.jpg)]

获取到数据后进行数据的储存,大部分情况数据是保存在数据库的,今天的数据储存在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()

?? 添加 博主 获取更多资料??

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>