爬虫下载百度文库

说明

1.本程序使用python爬虫构建。从Baidu文库的网页代码中找到、整合文字,并保存在“artical/text.docx”。

2.本程序暂不支持获取内含图片的百度文库文章。(持续更新)

3.本程序仅供个人学习使用,切勿商用。

设计思路

1.查看百度文库网页代码

使用python爬虫获取某一百度文库文章的网页代码(如下)。

import requests
import re
from bs4 import BeautifulSoup

class wenku:
    def __init__(self, url):
        super().__init__()
        self.url = url
        self.doc = ''
        self.header = {'User-Agent': 'Googlebot'}
        
    def get_Doc(self):
        soup = BeautifulSoup(self.response.text, features = 'lxml')
        text = soup.find_all('div', {'class':'doc-reader'})
        print(text[0].get_text())


if __name__ == '__main__':
    html = wenku('https://wenku.baidu.com/view/b2072721ccbff121dd3683a2.html')
    html.get_HTML()

网页代码
可以看到,所有的文章主体部分都包含在一个div标签中。

2.通过BeautifulSoup将文字部分匹配出来

在wenku类中添加如下代码。

def get_Doc(self):
        soup = BeautifulSoup(self.response.text, features = 'lxml')
        text = soup.find_all('div', {'class':'doc-reader'})
        print(text[0].get_text())

调用get_Doc()函数。

html.get_Doc()

3.使用python_docx库写入word文档

1.定义新类

class write_doc:
    def __init__(self):
        super().__init__()
    def write(self, doc):
        document = Document()
        document.styles["Normal"].font.name = u'宋体'
        document.styles["Normal"].font.size = Pt(14)
        document.styles["Normal"]._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
        paragraph = document.add_paragraph()
        paragraph.add_run(doc)
        document.save('text.docx')

2.修改类与函数的调用

if __name__ == '__main__':
    html = wenku('https://wenku.baidu.com/view/b2072721ccbff121dd3683a2.html')
    artical = write_doc()
    try:
        html.get_HTML()
        if html.response.status_code == 200:
            # html.get_Doc()
            artical.write(html.get_Doc())
            print('Finished!')
        else:
            print('Status Code is not 200!')
    except:
        print('Write Error!')

4.获取的结果

文档内容

代码下载

如需下载所有代码,请移步我的GitHub
其中可以下载已打包好的exe版本直接运行。
UI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值