美文网首页
提取微信公众号文章

提取微信公众号文章

作者: 乌守元 | 来源:发表于2019-03-13 21:15 被阅读0次

    提取微信公众号文章

    在上文中,我们已经将微信公众号文章的标题和链接存入了一个 txt 文件,每个一行。 接下来我们要做的就是从链接中提取文章正文,以便之后的分析。

    首先我们打开一篇文章,以这篇文章为例 机关事业单位职工注意:这47种行为会被开除,违纪将影响养老金,我们右击文章正文文字,检查元素所在位置,发现文章正文部分所在标签为 p。

    1

    检查网页源代码也可以发现,正文文字都在 p 标签下,知识每部分文字的格式、字号等有所不同,那么我们可以使用 BeautifulSoup 中的 findall 函数来获取所有的 p 标签,这样就可以获得文章的全部正文部分。

    2

    代码如下:

    def extractData(file):
        titles = [row for row in file[::3]]  // 列表解析
        links = [row for row in file[1::3]]
    
        for title,link in zip(titles,links):
            path = os.getcwd() + "/共青团中央/" + title + ".txt"
            web_data = requests.get(link)
            soup = BeautifulSoup(web_data.text, 'lxml')
            with open(path, 'a', encoding='utf-8') as fh:
                for content in soup.find_all("p"):
                    fh.write(content.text)
                fh.close()
            print(title + " end")
    
    if __name__=='__main__':
        filename = open("共青团中央.txt", 'r', encoding='utf-8').readlines()
        extractData(filename)
    

    在上面的代码中,我们首先从之前存入的 txt 文件读取 title 和 link,因为我们是按行存储,所以我们用 readline 按行读取,得到数据的列表,之后用列表解析的方式得到 title 列表和 link 列表,获取正文后存入新的 txt 文件。

    相关文章

      网友评论

          本文标题:提取微信公众号文章

          本文链接:https://www.haomeiwen.com/subject/reynpqtx.html