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

其实如果是一直关注本站的读者会知道,其实这里最早只是一个做我的世界服务器的官网,虽然说我现在服务器也在开着,但是当时不知道哪根经抽了,就把这个当成博客了,不过其实还是关注着我的世界的。

先说一下任务,目前呢在网络上搜索我的世界 ID 的话,会发现 ne 那个搜到的大多都是好多年以前的内容了,比如说那张我记的好久好久好久以前就存在的 ID 对照图。

python爬虫爬取我的世界 ID 对照

就是这张,影响深刻,但是实际上随着年份的增加,我的世界的版本更新还是蛮快的,一些新的内容在这上面就找不到了,所以就萌生了一个做 ID 对照的网站的想法,但是数据从哪来呢?答案当然是百度,通过百度的查询我发现了一个老外的 ID 站做的很不错,所以呢,目标就设定为他,使用 Python 爬虫将我需要的数据爬取下来。

不过其实在最终目标确定前,还有一个其他的目标也可以操作一下,不过那个内容相对较落后了,所以还是选择了第一个选定的目标。

我们先看一下该网站,分析一下。

python爬取我的世界 ID

很简单的构造,就是中间内容然后上下都是些介绍之类的,然后我们发现他这个一个页面显示一点点内容,获取所有的内容是需要翻页的,但是我搜索了半天确实没找到,应该是写在了 JS 文件里,因为我看到他调用了好多 JS 文件,不过我并没有去找里面有没有跳转链接,当时其实想是,你不论怎么说其实内容也就那么一点,大不了我直接把每个链接保存下来嘛。

结果翻页的时候看了一下,发现他的链接很简单,就是把之前那一页加上了 /?加上了数字,代表页码,很舒服。

直接通过 for 循环就可以爬取每个链接了,然后看了一下一共 8 页。所以循环从 range(2,9),为什么从 2 开始呢,是因为他第一页没写页码,相对简单的方法就是循环还是 range(1,9) 然后呢,我们设置个判断,如果是 1 的话链接设置为首页就行了,不过我当时懒,直接复制出来了一份,先把第一页爬出来再循环其他的页面。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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 次换一下行,结果还可以吧就是有点乱,需要调整一下。

好了,文章就到这里了,如果有什么不懂的请在评论区留言,我会在看到的第一时间进行回复的。

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

http://www.datehoer.com/posts/69c5e432-6e80-11ee-a697-01b0896cf41d/

作者

datehoer

发布于

2020-11-29

更新于

2023-10-19

许可协议

评论