python爬取各类文档方法归类汇总
在Python中,我们可以使用多种方式爬取各类文档,包括但不限于html、pdf、doc等格式的文档。下面将对几种常用的爬取方法进行介绍。
爬取HTML文档
在Python中,我们可以使用requests库和BeautifulSoup库来爬取HTML文档。其中,requests库用于发送请求并获得响应,而BeautifulSoup库用于解析响应中的HTML文档。
下面是一个简单的例子,用于爬取百度首页的HTML源码。
import requests
from bs4 import BeautifulSoup
url = 'https://www.baidu.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.prettify())
上述代码中,我们首先使用requests.get()方法发送了一个GET请求,获得了百度首页的响应。接着,使用BeautifulSoup库解析响应中的HTML文档,并将其美化输出。
爬取PDF文档
在Python中,我们可以使用PyPDF2库来爬取PDF文档。PyPDF2是一个流行的Python PDF库,它可以处理许多PDF文档的操作,包括合并、拆分、旋转、水印等。
下面是一个简单的例子,用于爬取一份PDF文档。
import requests
import PyPDF2
url = 'https://www.tutorialspoint.com/python/python_tutorial.pdf'
response = requests.get(url, stream=True)
with open('tutorialspoint_python_tutorial.pdf', 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
f.write(chunk)
pdfReader = PyPDF2.PdfFileReader('tutorialspoint_python_tutorial.pdf')
num_pages = pdfReader.numPages
print(f'Number of pages in this PDF: {num_pages}')
上述代码中,我们同样使用了requests库发送了一个GET请求,但这次我们需要设置stream参数为True,以便将响应获取到内存流中。接着,我们将内存流中的数据存储为本地的PDF文件。随后,使用PyPDF2库解析PDF文件,并输出其中的页数。
爬取doc文档
在Python中,我们可以使用python-docx库来爬取doc文档。python-docx库是一个Python模块,它允许我们读取、写入和修改Microsoft Word 2007/2010的docx文件。
下面是一个简单的例子,用于爬取一份doc文档。
from urllib.request import urlopen
from io import BytesIO
from docx import Document
url = 'http://www.africau.edu/images/default/sample.pdf'
docx_stream = BytesIO()
with urlopen(url) as pdf_stream:
docx_stream = BytesIO(pdf_stream.read())
doc = Document(docx_stream)
for para in doc.paragraphs:
print(para.text)
上述代码中,我们使用urllib.request库发送了一个GET请求,获取了一个doc文档的响应。接着,我们将响应中的内容读取到内存流中,并将内存流作为参数传入Document函数中。随后,我们使用doc.paragraphs的方式获取文档中的段落信息,并输出每个段落的文本内容。
以上就是爬取各类文档的几种常用方法,当然还有其他库和方法可供使用。需要根据实际需求来选择适合的方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬取各类文档方法归类汇总 - Python技术站