Datehoer的博客
我本将心向明月,奈何明月照沟渠
Datehoer的博客

当前位置:主页 > 技术分享 > python 爬取我的世界id,我的世界中英文id

python 爬取我的世界id,我的世界中英文id

浏览: 作者:Datehoer 发布日期:2020-11-29 17:49:03 来源: 原创
其实如果是一直关注本站的读者会知道,其实这里最早只是一个做我的世界服务器的官网,虽然说我现在服务器也在开着,但是当时不知道哪根经抽了,就把这个当成博客了,不过其实还是关注着我的世界的。
先说一下任务,目前呢在网络上搜索我的世界id的话,会发现ne那个搜到的大多都是好多年以前的内容了,比如说那张我记的好久好久好久以前就存在的id对照图。

python爬虫爬取我的世界id对照就是这张,影响深刻,但是实际上随着年份的增加,我的世界的版本更新还是蛮快的,一些新的内容在这上面就找不到了,所以就萌生了一个做id对照的网站的想法,但是数据从哪来呢?答案当然是百度,通过百度的查询我发现了一个老外的id站做的很不错,所以呢,目标就设定为他,使用python爬虫将我需要的数据爬取下来。
不过其实在最终目标确定前,还有一个其他的目标也可以操作一下,不过那个内容相对较落后了,所以还是选择了第一个选定的目标。
我们先看一下该网站,分析一下。

python爬取我的世界id
很简单的构造,就是中间内容然后上下都是些介绍之类的,然后我们发现他这个一个页面显示一点点内容,获取所有的内容是需要翻页的,但是我搜索了半天确实没找到,应该是写在了js文件里,因为我看到他调用了好多js文件,不过我并没有去找里面有没有跳转链接,当时其实想是,你不论怎么说其实内容也就那么一点,大不了我直接把每个链接保存下来嘛。结果翻页的时候看了一下,发现他的链接很简单,就是把之前那一页加上了/?加上了数字,代表页码,很舒服。
直接通过for循环就可以爬取每个链接了,然后看了一下一共8页。所以循环从rang(2,9)为什么从2开始呢,是因为他第一页没写页码,相对简单的方法就是循环还是rang(1,9)然后呢,我们设置个判断,如果是1的话链接设置为首页就行了,不过我当时懒,直接复制出来了一份,先把第一页爬出来再循环其他的页面。



import requests
from bs4 import BeautifulSoup
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'
}
url = "https://minecraftitemids.com/"
# 2 3 4 5 6 7 8
r = requests.get(url, headers=headers)
neirong = r.text
soup = BeautifulSoup(neirong, "lxml")
wenzi = soup.table.get_text()
length = len(wenzi)
with open("mclist.txt", 'a', encoding='utf-8') as file_object:
    n = 1
    for i in range(0, length, 20):
        file_object.write((wenzi[i:i+20]))
        if n == 10:
            file_object.write('\n')
            n = 0
        n += 1
for a in range(2, 9):
    newurl = url+str(a)
    r = requests.get(newurl, headers=headers)
    neirong = r.text
    soup = BeautifulSoup(neirong, "lxml")
    wenzi = soup.table.get_text()
    length = len(wenzi)
    with open("mclist.txt", 'a', encoding='utf-8') as file_object:
        n = 1
        for i in range(0, length, 20):
            file_object.write((wenzi[i:i + 20]))
            if n == 10:
                file_object.write('\n')
                n = 0
            n += 1
print("爬取完成")


可以看到我们利用了两个库,requests大家都清楚,BeautifulSoup这个库也是一个非常实用的库,看过前面文章的都知道,我写的那个爬取知乎文章的爬虫也利用了这个库,比较适合抓取内容。
知乎爬取全部内容  知乎爬取单页内容
感兴趣的可以了解一下,通俗易懂,哈哈。然后呢,这个其实也就没啥好讲的了,也就是最后写入文件的地方可以说一下啊,为什么要加一个循环,这是因为如果不加循环的话,他写入的内容是一行文字,当然如果你用记事本看的话,开个自动分行就好了,但是我想直接写入的内容就是分好的,所以就加了个循环,每循环10次换一下行,结果还可以吧就是有点乱,需要调整一下。
好了,文章就到这里了,如果有什么不懂的请在评论区留言,我会在看到的第一时间进行回复的。


版权:本文由Datehoer原创,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接本文链接:https://zjzdmc.top/jsfx/68.html。

文章推荐

热门标签

返回顶部
下面为相关推荐
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!