Home >  > 采集Stack Overflow及解析XML

采集Stack Overflow及解析XML

采集Stack Overflow其实非常简单,网上也有现成的代码,关键是要实现大批量的数据抓取比较麻烦。

一、返回代码429
今天在抓取时就碰到了这个代码,总共才抓了300多条记录,就碰到这个代码。

2、429 Too Many Requests (太多请求)
当你需要限制客户端请求某个服务的数量,也就是限制请求速度时,该状态码就会非常有用。在此之前,有一些类似的状态码。例如“509 Bandwidth Limit Exceeded”。

应该是我用了2个线程的原因。

二、解析数据
后来才发现根本不用采集,stack官方提供数据下载:https://archive.org/details/stackexchange

下载下来的文件是xml,需要解析一下。中间又发现了一个问题,官方提供的xml文件中许多问题没有标题,好吧,先将就用着吧。

import xml.etree.ElementTree as ET

def parserXml(file):
    n = 1
    i = 1
    for event, element in ET.iterparse(file):
        if element.tag == 'row':
            # print((element.attrib)
            title = element.attrib.get("Title")
            if title:
                print(element.attrib.get("Title"))
                i+=1
                print("-"*80)
            n+=1
        element.clear()
    print("共有{}文章,其中有标题的有{}篇......".format(n,i))


parserXml("Posts1.xml")

小提示:
一个主题同时提供两个文件,两个文件的内容是完全不一样的。

3dprinting.meta.stackexchange.com.7z (View Contents) 01-Mar-2021 11:09 630.7K
3dprinting.stackexchange.com.7z (View Contents) 01-Mar-2021 11:10 12.6M

暧昧帖

本文暂无标签