mongodb搭建校内搜索引擎——爬取网页文本

2024-02-26 14:59

本文主要是介绍mongodb搭建校内搜索引擎——爬取网页文本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目标:
读取excle文档中存储的url列表,爬取列表中网页的文本内容

概要:
在已经在获得爬虫获取的url列表的工作基础上,进行网页内容的获取。编程用到request(获取网页源码),BeautifulSoup(解析html,并且获取网页纯文本),lxml(解析html,在使用BeautifulSoup要预先安装),Xlrd(读取excle中内容)

我的思考:
一开始想用正则表达式来判断并且获的网页源码中的内容,但是发现自己的需求是获取所有纯文本的内容,刚开始接触爬虫时尝试过用,当你的需求是提取标题,或者特定单一的内容时,使用正则表示式还是可行的。考虑到我的要求是提取所有的文本内容,正则表达式就是比较局限,要考虑的情况较多,难免会有遗漏,所有去google有没有现有的python模块能干这种事。
果然,找到如下内容:

BeautifulSoup简介

在这里附上BeautifulSoup的中文文档使用链接:
BeautifulSoup4.2.0中文文档
在这里我只是使用了最为简单的方法实现,BeautifulSoup不仅实现了我的需求,而且远比我想象的还要强大。

代码:

#-*-coding:utf8-*-
from bs4 import BeautifulSoup
import requests
import re
import xlrd
import timedef get_text(url):headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36"}html=requests.get(url,headers = headers)#获取网页源码html_text=html.textsoup=BeautifulSoup(html_text,"lxml")#用BeautifulSoup获取网页内的纯文本fp_result=open("result.txt","a")result=soup.get_text# print (type(result))row_number=0fp_result.write(url)#打开文件结果以txt文件输出fp_result.write("\n------------------------------------------\n")for text in soup.stripped_strings:#soup.stripped_strings列表逐个输出fp_result.write(str(row_number)+":")fp_result.write(text.encode("utf-8"))#以utf-8编码输出fp_result.write("\n")row_number+=1fp_result.close()#关闭文件def get_xls(path):#打开已经通过爬虫获取的url列表,并且逐个读取urldata=xlrd.open_workbook(path)#打开excle文件table=data.sheets()[0]#打开工作表0nrows=table.nrows#获取行数finished_line=0for i in range(nrows):#逐个输出每行的内容ss=table.row_values(i)#获取列数for j in range(len(ss)):#逐个输出每列的内容finished_line+=1#记录完成进度try:get_text(ss[j])process=1.0*finished_line/nrowsprint "have finished %.3f" %process#记录完成进度print str(finished_line)except requests.exceptions.ConnectionError:#当出现requests.exceptions.ConnectionError时,将错误的链接记录到error.txt文件,错误原因有待进一步研究解决fp_error.write(ss[j]+"\n")print "target finished "+str(nrows)#记录总共的行数fp_error=open("error.txt","a")#打开记录错误的文件
fp_error.write(time.strftime('%Y-%m-%d',time.localtime(time.time())))#记录此次运行时间
fp_error.write("\n------------------------------------------\n")
get_xls("cs.xlsx")#调用函数,获取内容
fp_error.close()#关闭错误文件

这篇关于mongodb搭建校内搜索引擎——爬取网页文本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/749240

相关文章

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv