Python文档工具

2021-05-22  本文已影响0人  不若此间一壶酒

前言:本方法需要手动得到某文档的单篇文件,而不是基于爬虫的,具体原因正文会讲。因此,如果是想学爬虫的话,本文就没有必要再看下去了。另外,本文主要是扒中文的,如果原文是非中文,则需要自己写正则表达式。


一、使用条件

1、必需安装Python

2、要会写正则

二、过程分析

1、ba qu网页,最先想到的肯定是爬虫,那么肯定就想用requests方法,我们不妨试试。

import requests

from bs4 import BeautifulSoup as bs

url = 'https://wenku.baidu.com/link?url=iki4lWxb0vMNHUlIxZECH3ldyCOhsioFIQpQcoauVB6kLb1O_lm8AldXh3gjniyRQVqhxzeiuA-U7iRqlZWSugsbOrRjNUy5iB3lp6TJ1HwMLf3Ks5KgsskdijPQTsLX'

r = requests.get(url)

soup = bs(r.text, 'lxml')

text = soup.find_all('p')

for line in text:

    print(line.string)

原网页

上述代码得到的结果如下所示(中间部分省略)

读后感

读《伊索寓言》有感

伟大的文学家钱钟书先生(或者称作钱爷爷要中

听点,但我又担心别人笑话我是故意向名人套近乎,

管别人怎么说呢,不是常说走自己的路让别人去说

吗?我是我,他是他,这八竿子打不着的事。如果有

人吃撑了,非要乱嚼舌头,那我也没办法,总不能把

别人的嘴密封起来吧,有的人就算你把嘴给他密封住

他也会用鼻子发音来诋毁你,

…………

还念着说:

“好香的屎啊!

我们不

关于作者

                    柳含露

                    文库新人

文档

粉丝

等级

对比原文档可以发现,用requests方法只能得到文档第一页的内容。

原文

经过笔者的多种尝试,不仅requests方法没有用,而且就算是用Webdriver模拟登录,某文档设置的反爬虫也会把人搞死。当然,如果有大神能用requests就可以搞定,那么还请救救孩子!

2、既然requests神器用不了,那我们就自力更生,用最原始的方法,F12。

第一步,在Elements中逐层打开 第二步,在“reader-container”这一行右击,再点击“编辑网页”选项 第三步,按Ctrl+A全选框中的内容,复制到txt文档中保存

下面就可以用Python正则表达式来解决了。

import re

from docx import Document

# 正则,一般的中文文档都可以用此模式

re_pattern = re.compile(

    u">([《》,、。-;\'\"\”\“]*[\u4e00-\u9fa5]+[《》,、。-;\'\"\”\“]*)<|>(\d+)<")

                                      # 加粗斜体内容代表中文字符

# 打开用“编辑网页”得到的内容所保存的文档

f = open(r'ori.txt', encoding='utf-8')

s = f.read()

# 匹配,返回元组

res = re.findall(re_pattern, s)

txt = list()

for tup in res:

    # 把元组转为字符串

    s = ''.join(tup)

    txt.append(s)

# 连接所有字符串组成文档

new_txt = ''.join(txt)

# 保存到word当中

doc = Document()

doc.add_paragraph(new_txt)

doc.save(r'out.docx')

f.close()

最后保存的文本

三、总结

本文用的方法没什么难的,适用范围也不是很大,仅作为一种平时能用到的小工具的代码参考,如果有更好更智能的baipiao方法,希望各路大神不吝指教!

上一篇 下一篇

猜你喜欢

热点阅读